티스토리 뷰
다른 프로젝트들도 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: "true"
tags:
- gitlab-runner
script:
- chcp 65001
configserver-build:
stage: build
tags:
- gitlab-runner
script:
- echo $CONFIG_IMAGE_NAME
- docker stop $CONFIG_CON_NAME || echo "none container"
- docker rm $CONFIG_CON_NAME || echo "none container"
- docker rmi $CONFIG_IMAGE_NAME || echo "none image"
- docker ps -a
- docker images
- docker build ./config-server -t $CONFIG_IMAGE_NAME
- docker images
configserver-deploy:
stage: deploy
tags:
- gitlab-runner
script:
- docker run --network msa-network -d -p 8080:8080 --name $CONFIG_CON_NAME $CONFIG_IMAGE_NAME
eurekaserver-build:
stage: build
tags:
- gitlab-runner
script:
- echo $EUREKA_IMAGE_NAME
- docker stop $EUREKA_CON_NAME || echo "none container"
- docker rm $EUREKA_CON_NAME || echo "none container"
- docker rmi $EUREKA_IMAGE_NAME || echo "none image"
- docker ps -a
- docker images
- docker build ./eureka-server -t $EUREKA_IMAGE_NAME
- docker images
eurekaserver-deploy:
stage: deploy
tags:
- gitlab-runner
script:
- docker run --network msa-network -d -p 8761:8761 --name $EUREKA_CON_NAME $EUREKA_IMAGE_NAME
eureka-server 이미지와 컨테이너 변수를 추가하고 build, deploy 부분만 eureka-server에 추가하고 Commit Change 한다.
새로운 eureka-server 파이프라인 잡이 실행되고 배포가 완료되었다
gateway-server, authentication-server, item-service
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
GATEWAY_IMAGE_NAME: gateway-server-image
GATEWAY_CON_NAME: gateway-server
AUTH_IMAGE_NAME: authentication-server-image
AUTH_CON_NAME: authentication-server
ITEMSERVICE_IMAGE_NAME: item-service-image
ITEMSERVICE_CON_NAME: item-service
stages:
- clone
- build
- deploy
clone:
stage: clone
variables:
GIT_STRATEGY: fetch
GIT_CHECKOUT: "true"
tags:
- gitlab-runner
script:
- chcp 65001
configserver-build:
stage: build
tags:
- gitlab-runner
script:
- echo $CONFIG_IMAGE_NAME
- docker stop $CONFIG_CON_NAME || echo "none container"
- docker rm $CONFIG_CON_NAME || echo "none container"
- docker rmi $CONFIG_IMAGE_NAME || echo "none image"
- docker ps -a
- docker images
- docker build ./config-server -t $CONFIG_IMAGE_NAME
- docker images
configserver-deploy:
stage: deploy
tags:
- gitlab-runner
script:
- docker run --network msa-network -d -p 8080:8080 --name $CONFIG_CON_NAME $CONFIG_IMAGE_NAME
eurekaserver-build:
stage: build
tags:
- gitlab-runner
script:
- echo $EUREKA_IMAGE_NAME
- docker stop $EUREKA_CON_NAME || echo "none container"
- docker rm $EUREKA_CON_NAME || echo "none container"
- docker rmi $EUREKA_IMAGE_NAME || echo "none image"
- docker ps -a
- docker images
- docker build ./eureka-server -t $EUREKA_IMAGE_NAME
- docker images
eurekaserver-deploy:
stage: deploy
tags:
- gitlab-runner
script:
- docker run --network msa-network -d -p 8761:8761 --name $EUREKA_CON_NAME $EUREKA_IMAGE_NAME
gatewayserver-build:
stage: build
tags:
- gitlab-runner
script:
- echo $GATEWAY_IMAGE_NAME
- docker stop $GATEWAY_CON_NAME || echo "none container"
- docker rm $GATEWAY_CON_NAME || echo "none container"
- docker rmi $GATEWAY_IMAGE_NAME || echo "none image"
- docker ps -a
- docker images
- docker build ./gateway-server -t $GATEWAY_IMAGE_NAME
- docker images
gatewayserver-deploy:
stage: deploy
tags:
- gitlab-runner
script:
- docker run --network msa-network -d -p 8070:8070 --name $GATEWAY_CON_NAME $GATEWAY_IMAGE_NAME
authenticationserver-build:
stage: build
tags:
- gitlab-runner
script:
- echo $AUTH_IMAGE_NAME
- docker stop $AUTH_CON_NAME || echo "none container"
- docker rm $AUTH_CON_NAME || echo "none container"
- docker rmi $AUTH_IMAGE_NAME || echo "none image"
- docker ps -a
- docker images
- docker build ./authentication-server -t $AUTH_IMAGE_NAME
- docker images
authenticationserver-deploy:
stage: deploy
tags:
- gitlab-runner
script:
- docker run --network msa-network -d -p 8900:8900 --name $AUTH_CON_NAME $AUTH_IMAGE_NAME
itemservice-build:
stage: build
tags:
- gitlab-runner
script:
- echo $ITEMSERVICE_IMAGE_NAME
- docker stop $ITEMSERVICE_CON_NAME || echo "none container"
- docker rm $ITEMSERVICE_CON_NAME || echo "none container"
- docker rmi $ITEMSERVICE_IMAGE_NAME || echo "none image"
- docker ps -a
- docker images
- docker build ./item-service -t $ITEMSERVICE_IMAGE_NAME
- docker images
itemservice-deploy:
stage: deploy
tags:
- gitlab-runner
script:
- docker run --network msa-network -d --name $ITEMSERVICE_CON_NAME $ITEMSERVICE_IMAGE_NAME
각 서버, 서비스에 대한 변수를 추가하고 build, deploy 부분을 추가 하고 Commit Change한다.
새로운 잡이 추가되고
컨테이너 실행 완료
'자바 > MSA' 카테고리의 다른 글
GitLab CI/CD 파이프라인 (0) | 2024.01.11 |
---|---|
Gitlab설치 (0) | 2024.01.09 |
Microservice 컨테이너 운영방법 (1) | 2024.01.08 |
Docker Registry (0) | 2024.01.08 |
Docker를 이용한 Microservice 이미지 만들기 (0) | 2024.01.07 |