photocard backend server 개발일기

OCI gitlab ci/cd spring boot backend적용 일기

한둥둥 2024. 3. 6. 16:08

https://seounggyun.tistory.com/207

 

Photocard GitLab 구축일기

우선 깃랩을 설치하기전 apt update를 해주자 sudo apt update sudo apt upgrade -y 의존성 설치 (필자는 이미 설치했었음 이유는 ssl인증하려고 설치한 적 있기 때문이다.) curl -sS https://packages.gitlab.com/install/re

seounggyun.tistory.com

우선 이전에 깃랩을 세팅한 글은 위에와 같다.

 

해당 방식은 Docker-Container가 떠있는 docker hub에 접근하여 스프링 백엔드에 해당하는 컨테이너를 다시 띄워주는 방식으로 진행됩니다. 

 

가장 우선적으로 필자는 GitLab을 docker container에 띄워주지 않았기 때문에 방법이 다르다는 걸 미리 말씀드립니다. 도커 컨테이너를 사용하여 ci/cd를 구축하시는 분은 다른 글을 확인해주세요~

 

1. gitlab-runner 설치 & 등록 

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash

 

sudo apt-get install -y gitlab-runner

 

sudo gitlab-runner register

 

해당 부분으로 들어가면 각각 붙여넣기할 내용이 나온다. 

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://gitlab.com/

 

 

# 아래는 예시입니다. 각자의 맞는 token값을 넣어주세요. 
Please enter the gitlab-ci token for this runner: 
GR1348941yvDX_2312445452ewqewwqt

 

Please enter the gitlab-ci description for this runner:
[ubuntu]: photocardback
Please enter the gitlab-ci tags for this runner (comma separated):
photocard-build-server
Please enter the executor: ssh, virtualbox, docker-ssh+machine, kubernetes, docker, docker-ssh, parallels, shell, docker+machine:
docker

 

 

 

.gitlab-ci.yml

stages:
  - build
  - test
  - package
  - deploy
  
build: # JOB이름
  image: eclipse-temurin:17
  stage: build
  script:
    - ./gradlew clean build
    - ./gradlew build
  artifacts:
    paths:
      - build/libs/*.jar
    expire_in: 10 min

test:
  image: eclipse-temurin:17
  stage: test
  script: ./gradlew test

package:
  image: docker:latest
  stage: package
  variables:
    IMAGE_NAME: photocard-back/build
  services:
    - docker:dind
  before_script:
    - docker login -u $DOCKER_HUB_USER --password-stdin < $DOCKER_HUB_PW
  script:
    - docker build -t $IMAGE_NAME .
    - docker push $IMAGE_NAME
  after_script:
    - docker logout

deploy:
  stage: deploy
  tags:
    - photocard-build-server
  before_script:
    - docker login -u $DOCKER_HUB_USER --password-stdin < $DOCKER_HUB_PW
  script:
    - docker stop photocardback_back || true
    - docker rm photocardback_back || true
    - docker rmi photocardback_back || true
    - docker run -d --restart always -p 8080:8080/tcp --name photocardback_back photocardback_back
  after_script:
    - docker logout
  when: on_success
  only:
    - main

 

 

$DOCKER_HUB_USER , $DOCKER_HUB_PW 같은 경우는 gitlab repository > CI/CD > Variables 에서 Add variable을 통해서 도커 아이디 , 도커 PW를 넣어준다. 

해당 파일을 작성할 때, 

Pipeline editor에서 작성하면 조금 더 쉽게 작성 할 수 있다. 

 

이렇게 까지 완료 후, main에다가 푸쉬하면 

pass가 성공적으로 된 것을 볼 수 있다.