OCI gitlab ci/cd spring boot backend적용 일기
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가 성공적으로 된 것을 볼 수 있다.