GitLab 진짜 CI/CD 적용

gahyun·2022년 12월 14일
2

GitLab

목록 보기
4/5
post-thumbnail

지금까지는 GitLab 기본사용법을 알아봤는데 자동배포 스크립트을 사용해서 CI/CD를 적용해보도록 하겠습니다.

📌 자동배포 스크립트 빌드

자동 빌드가 왜 필요한가 ?

지금까지 수정 사항이 있으면 수정, 추가하고 gradle 빌드 진행하는 과정을 통했는데 그것을 스크립트를 통해 GitLab Merge가 진행되면 도커에 자동으로 로그인, 빌드, 푸시까지 진행이 되도록 스크립트를 작성해서 pipeline에 작성해둔다.

1. Settings - CI/CD 세팅하기

  • settings > CI/CD

  • 아래 스크립트에서 사용될 변수값을 미리 설정

  • 설정하는 방법
    GITLAB_USER 는 @kahyeonlee 에서 @ 제외하고 작성
    GITLAB_password 는 gitlab 로그인시 비밀번호 사용 (영문+숫자가 인식잘됨)
    PROJECT_NAME는 이 프로젝트의 이름

💊주의사항
Mask variable을 체크해야지 비밀번호같은 정보가 실행될때 유출이 안된다.

2. 자동 배포 스크립트 작성

  • CI/CD > Editor 이동
  • 파일내에 Dockerfile 포함되어있을 때 사용
# 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 되었는지 확인

3. container Registry 확인하기

📌 Docker로 배포

1. docker pull < Registry 주소>

  • Registry 주소확인

  • docker pull < Registry 주소>

  • docker images 로 확인

2. docker run

  • docker run 실행
docker run -p 8080:8080 --name <정해줄 이름>  -e SPRING_DATASOURCE_URL=jdbc:mysql://<DB의 ec2 주소>:3306/<스키마명> -e SPRING_DATASOURCE_PASSWORD=<비밀번호> -d <이미지명>
  • 결과

3. docker logs < container id>

  • 이렇게 나오면 성공!!! url로 배포확인하기~~~

💬 지금까지 Docker로 수동으로 배포하던 것을 다음시간에는 crontab으로 자동배포 할수 있도록 설정하는 연습을 해보도록 하겠습니다!

0개의 댓글