
다른 프로젝트들도 docker 컨테이너까지 배포할 수 있도록 CI/CD를 개발한다. GitLab CI 파일을 다시 열고 marster 브랜치 에디터 메뉴를 수정한다. eureka-server variables: GIT_STRATEGY: none GIT_CHECKOUT: "false" CONFIG_IMAGE_NAME: config-server-image CONFIG_CON_NAME: config-server EUREKA_IMAGE_NAME: eureka-server-image EUREKA_CON_NAME: eureka-server stages: - clone - build - deploy clone: stage: clone variables: GIT_STRATEGY: fetch GIT_CHECKOUT: "..

gitlab에서 CI에 대해 개발하는 방법 가이드 깃랩에 접속하여 microservice 프로젝트로 들어간다. Build 안에 Pipeline editor 메뉴로 들어가 marster 브랜치로 변경 후 configure pipeline을 클릭 업로드한 여러 프로젝트에 대한 코드로부터 Docker 컨테이너로 가기까지에 대한 CI/CD를 코딩하는 스크립트 템플릿이다. 이러한 스크립트를 통해 파이프라인을 구성하여 원하는대로 CI/CD를 설계하고, 개발할 수 있다. variables: GIT_STRATEGY: none GIT_CHECKOUT: "false" CONFIG_IMAGE_NAME: config-server-image CONFIG_CON_NAME: config-server stages: - clone -..

gitlab은 docker image를 통해서 설치한다. 실행될 gitlab 컨테이너와 공유할 폴더를 미리 만든다. docker run --detach --name gitlab --hostname localhost -p 80:80 --restart always --volume C:\Development\99.workspace_study\msa\gitlab\config:/etc/gitlab --volume C:\Development\99.workspace_study\msa\gitlab\logs:/var/log/gitlab --volume C:\Development\99.workspace_study\msa\gitlab\data:/var/opt/gitlab gitlab/gitlab-ce --hostname: ..

6개의 프로세스 중 item-service에 대한 스케일업, 버전 업그레이드 방안에 대해 알아본다. item-service 스케일업 스케일업이란? 마이크로서비스를 한 개 더 실행함으로써 로드밸런싱 처리할 프로세스를 더 구축하는 것. docker run --network msa-network -d --name item-service1-2 item-service image 현재 item-service는 랜덤 포트로 실행되고 있다. 이 상태에서 item-service를 한대 더 증설해야 한다면 item-service-image를 가지고 컨테이너를 하나 더 실행하기만 하면된다. item-service라는 컨테이너가 이미 있으니 imte-service1-2라는 이름으로 컨테이너를 실행시키면 eureka-serve..

Docker Registry는 Docker image 저장소이다. 생성된 Docker image를 registry에 업로드 하면 나중에 필요할 때 registry에서 내려받아서 컨테이너를 실행할 수 있다. 보통 registry는 배포할 때도 사용되지만 백업이나 롤백을 진행할 때도 유용하게 사용된다. 예를들어 새롭게 변경된 버전으로 배포를 진행할 때 기존 컨테이너를 이미지로 만들어서 registry에 업로드 해놓고 기존 컨테이너를 삭제하고 새로운 버전 이미지로 컨테이너를 실행해서 버전 업그레이드 패치를 진행하기도 한다. registry는 저장소이지만 사용하기에 따라 용도가 다양할 수 있다. Docker Registry 설치 docker run -d --name registry -p 5000:5000 --r..

Dockerfile을 이용하여 개발한 마이크로서비스를 docker image로 만들어서 컨테이너로 실행하는 과정을 알아본다. 마이크로서비스가 실행될 컨테이너와 연동할 mariadb 컨테이너 실행 Docker Desktop이 실행중인 것을 확인하고 커맨드 창을 연다. 각 컨테이너간 통신을 하기위해 docker network 생성 컨테이너 실행시 'msa-network'를 통해 실행하면 컨테이너간 통신이 쉬워진다. 보통 통신시 ip와 port를 이용하여 통신을 하는데 컨테이너명을 통해서 실행할 수 있다. docker run --network msa-network -d -p 3307:3306 --restart=always -e MYSQL_ROOT_PASSWORD=!qwer1234 --name mariadb m..

docker를 이용하여 이미지를 다운받아 컨테이너를 생성하여 실행, 중지, 삭제를 진행해본다. Image 내려받기 CMD창에 명령어 입력으로 Image를 다운받을 수 있다. httpd 아파치 Image가 내려받아진다. 명령어에 docker images 혹은 docker image ls 라고 입력하면 image 목록이 나온다. docker run -d --name apache -p 8080:80 httpd 입력하면 Image를 통해 컨테이너를 실행하게 된다. run: image에 대한 Container를 생성하고 실행 --name: 컨테이너 명으로 'apache' 지정 -p: 포트 포워딩 설정. 8080포트는 외부(호스트 포트). 80포트는 내부(Container 내에서 실행되는 포트). 외부에서 8080..

Docker는 Linux와 호환되기 때문에 Window에 설치하려면 별도의 설정과정을 거친다. WSL2 활성화 윈도우에서 Docker를 설치하려면 Windows Subsystem for Linux의 약자인 WSL2 프로그램을 사용할 수 있는 환경으로 구성해야 한다. 제어판 - 프로그램 추가 제거 - Windows 기능 켜기/끄기 에서 Linux용 Windows 하위시스템, 가상 머신 플랫폼 체크 후 컴퓨터 재부팅 Docker 설치 https://docs.docker.com/desktop/install/windows-install/ Install Docker Desktop on Windows Get started with Docker for Windows. This guide covers system re..

Docker란? 데이터 또는 프로그램을 격리시키는 기능 Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼으로 애플리케이션을 작업자 취향에 맞게 원하는 그룹들로 묶어서 관리할 수 있다. A프로그램과 B프로그램을 묶어서 하나의 컨테이너로 관리한다고 했을 때 하나의 컨테이너를 중지하면 A,B 프로그램이 중지되고 컨테이너를 실행하면 A,B 프로그램이 동시에 실행될 수 있도록 Docker를 통해서 작업할 수 있다. 수동으로 운영되고 관리되던 프로세스들을 간편하게 관리할 수 있도록 도와주것이 Docker의 장점 중 하나이다. Docker를 이용하면 Tomcat이나 MariaDB 같은 각각의 프로세스별로 묶어서 OS같은 환경이 구성되어 개별로 운영되는 것처럼 독립적인 환경에서 관리하는 기능을 제공..

CI(Continuous Integration)/CD(Continuous Delivery)란? 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법. CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포이다. CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 통합 지옥 "integration hell")를 해결하기 위한 솔루션이다. 특히 CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공한다. 이러한 구축 사례를 일반적으로 "CI/CD 파이프라인"이라 부르며, 개발 및 운영팀의 애자일 방식 협력을 통해 Dev..