gitlab‐ci - jupark33/Spring GitHub Wiki

  • docker hub 가입

  • docker hub access token 생성

  • gitlab web > project > settings > cicd > variables
    Add variables : DOCKER_USER
    Add variables : DOCKER_ACCESS_TOKEN

  • gitlab-ci.yaml 작성

stages:
 - build
 - test
 - docker_build
 - deploy

build-job:
 stage: build
 script:
 - echo "Build"
 - pwd
 - whoami
 - ./gradlew bootJar
 - cp build/libs/*.jar D:/build_home/opt
 - echo "Compile completed."

docker_build_job:
 image: docker:latest
 stage: docker_build
 script:
 - mkdir target
 - cp D:/build_home/opt/*.jar target/echo.jar
 - docker login -u $DOCKER_USER -p $DOCKER_ACCESS_TOKEN
 - docker build -t $DOCKER_USER/echo:$CI_PIPELINE_ID .
 - docker push $DOCEKR_USER/echo:$CI_PIPELINE_ID

unit-test-job:
 stage: test
 script:
 - echo "Running Test"
 - sleep 1
 - echo "Code coverage"

lint-test-job:
 stage: test
 script:
 - echo "Linting code"
 - sleep 1
 - echo "No lint"

deploy-job:
 stage: deploy
 environment: production
 script:
 - echo "Deploying"
 - echo "Application"
  • deployment.yaml의 이미지 태그 최신화
...
 spec:
  containers:
  - name: echo
    image: DOCKER_USER/echo:IMAGE_TAG
    imagePullPolicy: Always
    ports:
    - containerPort: 8080
...
  • sed 이용 ( 다음 단계는 Helm Chart를 이용해서 효율화 )
# CLI 실습
sed -i "s/IMAGE_TAG/new_tag/g" deployment.yaml
# gitlab-ci
sed -i "s/IMAGE_TAG/$CI_PIPELINE_ID/g" deployment.yaml