Jenkins에서 GitHub Actions로 CI/CD 도구를 변경하면서 배포 스크립트는 동일하게 유지되지만, 각 도구에서 스크립트를 실행하는 방식이 달라 배포 스크립트를 다시 작성해야 했다.
이를 해결하기 위해 배포 스크립트를 별도로 관리하고, CI/CD 워크플로우에서 해당 스크립트를 실행하도록 변경해보고자 한다.
현재 배포 스크립트는 밑과 같다.
script: |
docker pull jaew0n/thiscoding:latest
docker rm -f thiscoding-container || true
docker run -d \
--name thiscoding-container \
--restart unless-stopped \
-p 8080:8080 \
-v thiscoding-data:/app/data \
jaew0n/thiscoding:latest
docker ps | grep thiscoding-container
단순하지만 전체적인 워크플로우를 보면 한 줄로 관리되는 다른 작업과 달리 유독 길다.
위에서 말한 거처럼 배포 스크립트로 관리하기 위해 배포에 사용되는 ec2에 들어가서 배포 스크립트를 만들어 보겠다.
배포 스크립트 생성
먼저 ec2로 들어가 배포 스크립트를 만들자
- 배포 디렉토리 만들기 -> mkdir deploy
- 배포 스크립트 파일 만들기
- cd deploy
- vim deply.sh
- 배포 스크립트 작성

4. 작성 후 cat deploy.sh를 입력하여 잘 작성이 된지 확인한다.
워크플로우에 적용
chmod +x /home/ubuntu/deploy.sh # 실행 권한 부여
bash /home/ubuntu/deploy.sh # 스크립트 실행
전과 비교했을 때 확실히 깔끔해지고 CI/CD 툴을 변경하게 되더라도 스크립트 실행만 시키면 되기 때문에 관리가 더 수월해졌다.
'개발' 카테고리의 다른 글
| 대형 Document 분리와 비지니스 로직 개선 중 발생한 성능이슈 : [MongoDB 성능 리팩토링] (1) | 2025.04.29 |
|---|---|
| OAuth2.0 로그인 성공시 토큰 관리 (0) | 2025.04.05 |
| OAuth2.0 로그인 정보 (1) | 2025.03.20 |
| EC2 젠킨스 빌드 멈춤 상황 해결과정에서 깨달은 CI/CD툴 선택 (0) | 2025.03.12 |
| @AuthenticationPrincipal 대신 HandlerInterceptor로 권한체크 (0) | 2024.12.21 |