티스토리 뷰

자바/MSA

GitLab CI/CD 배포

UroJem 2024. 1. 14. 10:38

다른 프로젝트들도 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한다.

 

새로운 잡이 추가되고

 

컨테이너 실행 완료

 

 

https://www.inflearn.com/course/java-msa-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%8B%A4%EC%8A%B5/dashboard

'자바 > 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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함