지금까지는 GitLab 기본사용법을 알아봤는데 자동배포 스크립트을 사용해서 CI/CD를 적용해보도록 하겠습니다.
지금까지 수정 사항이 있으면 수정, 추가하고 gradle 빌드 진행하는 과정을 통했는데 그것을 스크립트를 통해 GitLab Merge가 진행되면 도커에 자동으로 로그인, 빌드, 푸시까지 진행이 되도록 스크립트를 작성해서 pipeline에 작성해둔다.
settings > CI/CD
아래 스크립트에서 사용될 변수값을 미리 설정
설정하는 방법
GITLAB_USER
는 @kahyeonlee 에서 @ 제외하고 작성
GITLAB_password
는 gitlab 로그인시 비밀번호 사용 (영문+숫자가 인식잘됨)
PROJECT_NAME
는 이 프로젝트의 이름
💊주의사항
Mask variable을 체크해야지 비밀번호같은 정보가 실행될때 유출이 안된다.
# stage → 단계
stages:
- dockerbuild-push
package:
only:
- main
image: docker:latest
stage: dockerbuild-push
services:
- docker:dind
before_script:
- docker login registry.gitlab.com -u $GITLAB_USER -p $GITLAB_PASSWORD
script:
- docker build -t registry.gitlab.com/$GITLAB_USER/$PROJECT_NAME .
- docker push registry.gitlab.com/$GITLAB_USER/$PROJECT_NAME
after_script:
- docker logout
위의 스크립트 복사해서 붙여넣기
CI/CD > Pipelines 이동
pass 되었는지 확인
Registry 주소확인
docker pull < Registry 주소>
docker images 로 확인
docker run -p 8080:8080 --name <정해줄 이름> -e SPRING_DATASOURCE_URL=jdbc:mysql://<DB의 ec2 주소>:3306/<스키마명> -e SPRING_DATASOURCE_PASSWORD=<비밀번호> -d <이미지명>
💬 지금까지 Docker로 수동으로 배포하던 것을 다음시간에는 crontab으로 자동배포 할수 있도록 설정하는 연습을 해보도록 하겠습니다!