Docker 기반의 Spring 프로젝트 Gitlab 자동 배포의 신속한 구현

머리말

배포는 반복적이고 지루한 일입니다.CI/CD 지속적 통합 및 지속적 제공에 대해 들어 보셨을 것입니다. 이 문서는 Gitlab CI/CD 및 Docker를 기반으로 프로젝트의 자동 배포를 빠르게 실현합니다. 이 솔루션은 Git과 밀접하게 통합될 수 있으며 추가 도구 없이 코드 제출 후 자동 빌드 및 배포를 실현할 수 있습니다.

준비

먼저 아래의 3가지 소프트웨어를 설치하시기 바랍니다.순서대로 설치하는 것을 권장합니다.소프트웨어 설치는 아래의 참조 링크를 참조하십시오.

  1. 도커: 설치 튜토리얼 ;
  2. Gitlab: 설치 튜토리얼 ;
  3. GitlabRunner: 설치 튜토리얼 ;

메인 프로세스

우리의 주요 프로세스는 Gitlab을 통해 코드를 관리하고 Gitlab과 함께 제공되는 Gitlab CI/CD 기능을 사용하여 GitlabRunner에 등록하고 바인딩하는 것입니다. 바인딩이 성공한 후 코드가 제출될 때마다 GitlabRunner가 트리거되어 해당 스크립트 프로그램을 실행하여 자동 배포를 실현할 수 있습니다.
여기에 이미지 설명 삽입

GitlabRunner 등록

  1. 자동 배포가 필요한 Gitlab 창고를 열고 설정-"CI/CD-"Runners를 선택합니다.
    여기에 이미지 설명 삽입
  2. 아래 그림과 같이 나중에 GitlabRunner가 등록할 때 사용되는 가장 중요한 두 가지 정보를 볼 수 있습니다. 기억하세요.
    여기에 이미지 설명 삽입
  3. GitlabRunner 등록
    명령 가이드: gitlab-runner register등록, gitlab-runner list등록된 Runner 보기, gitlab-runner unregister --all-runners모든 등록 취소.
    먼저 먼저 하나를 등록한 다음 Runner의 이름을 지정합니다(무엇이든). Hello, Spring Boot!라고 이름을 지정한 다음 Runner의 태그를 입력합니다. 태그를 사용하여 서로 다른 Runner에 대한 프로젝트의 서로 다른 단계를 구분할 수 있습니다. 실행하려면 여기에 입력하십시오 : maven; 마지막으로 실행하려는 스크립트를 입력하고 여기에 쉘을 사용하십시오.
    여기에 이미지 설명 삽입
    등록이 성공적으로 완료되었다면 지금 바로 Gitlab 페이지를 새로 고침하면 성공적으로 등록된 것을 확인할 수 있습니다!
    여기에 이미지 설명 삽입

제작 각본

코드를 제출한 후 쉘 스크립트를 사용하여 빌드 및 배포를 제어하려면 어떻게 해야 합니까? Gitlab에서 템플릿을 제공해 .gitlab-ci.yml웨어하우스의 루트 디렉터리에 다음과 같은 파일을 생성할 수 있으며 여기에서 SpringBoot 프로젝트를 실행하므로 내용은 다음과 같습니다.

stages:
  - build
  - deploy_test
#  - clean
# 打包镜像
build:
  stage: build
  only:
    - master
  script:
    - $MAVEN_HOME/bin/mvn clean package -U '-Dmaven.test.skip=true'
    - cp target/GitlabRunnerTest-0.0.1-SNAPSHOT.jar docker/
    - cd docker
    - docker build -t test/gitlabrunner:v1.0.0 .
  tags:
    - maven
# 部署测试服务器
deploy_test:
  stage: deploy_test
  only:
    - master
  script:
    - cd docker
    - docker-compose down
    - docker-compose up -d
  tags:
    - maven
#清理虚悬镜像
#clean:
#  stage: clean
#  only:
#    - master
#  script:
#    - docker rmi $(docker images -q -f dangling=true)
#  tags:
#    - maven

그런 다음 루트 디렉터리에 Docker 폴더를 만들고 Dockerfile을 만듭니다.

FROM openjdk:11
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp

docker-compose.yml 만들기

version: '3.1'
services:
  education-course:
    container_name: test-gitlabrunner
    restart: always
    image: test/gitlabrunner:v1.0.0
    network_mode: "host"
    command: java -jar -Xms1024m -Xmx1024m -Duser.timezone=GMT+08 GitlabRunnerTest-0.0.1-SNAPSHOT.jar --spring.profiles.active=test

전체 프로젝트 디렉토리 구조는 다음과 같습니다.
여기에 이미지 설명 삽입

확인하다

완료되면 코드를 업로드한 다음 CI/CD 파이프라인에서 실행이 성공했는지 확인할 수 있습니다.
여기에 이미지 설명 삽입
보시다시피 빌드가 성공적으로 완료되었습니다. 다음을 방문하십시오.
여기에 이미지 설명 삽입
축하합니다. 성공적으로 배포되었습니다. 코드에서 Git 제출을 수정하여 자동 배포의 효과를 확인할 수 있습니다.

Supongo que te gusta

Origin blog.csdn.net/u012558210/article/details/117955770
Recomendado
Clasificación