Docker
-
[Infra] Docker 이미지 최적화프로젝트/뉴스타 2024. 6. 13. 07:32
Docker 이미지 최적화 왜 궁금했을까❓Docker를 이용하여 이미지 파일을 만들어보니 약 5.1GB로 생각보다 이미지의 크기가 컸다. 큰 용량으로 인해 빌드 시간이 오래 걸려 배포가 늦어진다는 문제점이 존재했다. 이를 해결하고자 Docker 이미지 최적화를 찾아봤는데 Multi Stage Build, 작은 Base 이미지 등을 활용하여 줄이는 방법이 있었다. 이에 대해 알아보고 프로젝트에 적용해보려고 한다. [Infra] Dockerfile & Docker-Compose 작성Dockerfile & Docker-Compose 작성 왜 궁금했을까❓뉴스타 서비스의 경우 Docker를 이용하여 어플리케이션을 띄우기로 했다. 그래서 Dockerfile과 Docker-compose 작성법에 대해서 알아보고 뉴스..
-
[Infra] Dockerfile & Docker-Compose 작성프로젝트/뉴스타 2024. 6. 11. 08:56
Dockerfile & Docker-Compose 작성 왜 궁금했을까❓뉴스타 서비스의 경우 Docker를 이용하여 어플리케이션을 띄우기로 했다. 그래서 Dockerfile과 Docker-compose 작성법에 대해서 알아보고 뉴스타 서비스에 적용하는 과정까지 살펴보도록 하겠다. 1. Dockerfile 문법 Dockerfile referenceFind all the available commands you can use in a Dockerfile and learn how to use them, including COPY, ARG, ENTRYPOINT, and more.docs.docker.com명령설명FROM베이스 이미지 설정LABEL이미지의 Metadata 설정CMDDocker Container를 생..
-
[CI/CD] Docker를 이용해서 Jenkins를 사용해야 할까?프로젝트/아카이뷰 2024. 2. 1. 10:24
Jenkins in Docker 왜 궁금했을까❓SSAFY 2학기 프로젝트 Archiview를 Docker에 Jenkins를 올리는 형태로 CI/CD를 구축하고 있었는데 Jenkins안에서 docker 명령어를 써야하는 상황이 발생했다. jenkins에는 docker가 설치되어 있지 않아 방법을 알아보고 해결해보고자 한다. 우선, jenkins를 이용하는 방식을 두 가지로 나뉜다. ① OS에 설치하는 방식Ubuntu, CentOs 등 리눅스 서버 자체에 jenkins를 설치하는 방식이다.jenkins를 직접 설정할 수 있다는 부분이 가장 큰 장점인 거 같다.단점으로는 매번 플러그인, 설정 등을 직접 셋팅을 해줘야 한다는 점이다. ② 도커를 통해서 설치하는 방식리눅스 서버에서 Docker를 이용하여 Jen..
-
[CI/CD] Jenkins / GitLab / Docker / EC2 연동 (2/2)프로젝트/아카이뷰 2024. 1. 31. 21:15
이번 포스팅에서는 Jenkins 세부 설정과 GitLab과의 연동, 배포까지 진행해보도록 하겠다. 1. GitLab 연동Jenkins 관리에서 System을 누르고 GitLab 설정쪽으로 가서 해당 필드를 채워준다. 2. Credential 등록GitLab과의 연동을 위해 GitLab에서 AccessToken을 발급하고 등록해준다.Kind를 GitLab API token으로 변경 후, API Token 부분에 Access Token을 삽입ID는 GitLab의 아이디를 적어주고 Add를 클릭다시 돌아가서 credential을 선택 3. Pipeline 작성new item을 누르고 pipeline을 선택push에 대해서만 build를 유발시킬 것이기 때문에 build Triggers에서 위의 그림과 같이 설..
-
[CI/CD] Jenkins / GitLab / Docker / EC2 연동 (1/2)프로젝트/아카이뷰 2024. 1. 30. 21:02
SSAFY 2학기 프로젝트 "Archiview"를 Jenkins, GitLab, Docker, EC2를 이용해서 CI/CD를 구축해보겠다. [CI/CD] Jenkins란?Jenkins 왜 궁금했을까 ❓SSAFY 2학기 공통 프로젝트를 진행하면서 완성한 기능들을 매번 수동 빌드하여 배포하는 과정이 너무 번거롭게 느껴졌다. EC2 서버에서 소스 코드를 pull 받고 build하고 배포pslog.co.kr [Docker] Docker란?Docker 왜 궁금했을까 ❓SSAFY 2학기 공통 프로젝트를 수행할 때, CI/CD를 구성하기 위해서는 Docker, Docker compose를 사용해야만 하는 것을 확인했다. 그래서 업무 생산성을 향상시키기 위해 CI/CD 환경 구pslog.co.kr위 포스팅들을 통해 ..
-
[Docker] RUN / CMD / ENTRYPOINT의 차이프로젝트/아카이뷰 2024. 1. 29. 19:40
RUNRUN 명령어는 Docker 파일로부터 도커 이미지를 빌드할 때 실행되는 명령어Dockerfile에서 주로 작성되며 라이브러리 설치에 사용된다.CMD / ENTRYPOINTDocker 파일로부터 도커 이미지를 빌드할 때 실행되는 것이 아닌 컨테이너를 생성하고 최초로 실행할 때 수행하는 명령어두 명령어는 동일한 역할을 수행하는 것처럼 보이지만 차이점이 존재한다.CMD의 경우 Docker를 run할 때 파라미터로 값을 넘겨 실행할 수 있다.ENTRYPOINT의 경우는 파라미터로 값을 지정할 수 없으며 컨테이너가 최초에 꼭 실행되어야 하는 명령어가 작성되곤 한다.
-
[Docker] Spring boot 프로젝트 배포프로젝트/아카이뷰 2024. 1. 26. 08:52
Spring Boot 프로젝트 배포 왜 궁금했을까 ❓SSAFY 2학기 공통 프로젝트를 수행하는 과정에서 클라이언트와 통신하기 위해 백엔드 서버를 EC2에 띄워야 했다. NGINX 부분은 팀원분이 설정을 해놓은 상태여서 나는 .jar 파일로 빌드만 해서 넘겨주면 되는 상황이었다. DockerfileDocker compose를 이용해서 백엔드 API 서버를 배포하는 식으로 아키텍쳐가 구성되어 있어서 Dockerfile을 이용하여 백엔드 API를 빌드하고 이미지화 하는 식으로 진행하려고 한다.FROM openjdk:17ARG JAR_FILE=build/libs/*.jarCOPY ${JAR_FILE} app.jarEXPOSE 11443ENV TZ Asia/SeoulENTRYPOINT ["java","-jar"..
-
[Docker] Docker란?프로젝트/아카이뷰 2024. 1. 25. 23:20
Docker 왜 궁금했을까 ❓SSAFY 2학기 공통 프로젝트를 수행할 때, CI/CD를 구성하기 위해서는 Docker, Docker compose를 사용해야만 하는 것을 확인했다. 그래서 업무 생산성을 향상시키기 위해 CI/CD 환경 구성이 필수적이었고 이를 구현하기 위해 Docker에 대해 학습을 진행해보았다. Docker란 ❓Docker- 프로세스 격리 기술을 이용하여 더 쉽게 컨테이너를 실행하고 관리할 수 있도록 도와주는 오픈소스 프로젝트- 도커 엔진(Docker Engine) 혹은 도커에 관련된 모든 프로젝트를 지칭Docker Engine컨테이너를 직접 관리하는 주체로서 컨테이너를 제어하고 다양한 기능을 제공 Docker의 작동 원리 What is a Container? | DockerA cont..