-
[CI/CD] Jenkins 스크립트에서 프로젝트 빌드시 Dockerfile 경로 설정하는 법Dev Ops/CI-CD 2023. 4. 17. 00:32반응형
[상황]
- Jenkins에서 item이 3개로 구분되어서 빌드 진행(Backend-spring/Backend-python/Frontend)
- 스프링서버와 파이썬서버는 각각 무중단배포와 Auto-scaling을 위해 Docker로 빌드하여 Dockerhub에 올린 후 이미지로 서버를 실행
- 각각의 Git branch에서 작업할 당시에는 Dockerfile이 겹치지 않아 각자 빌드가 잘 작동
- master로 머지하는 과정에서 Dockerfile 충돌로 빌드가 되지 않음
[해결 방법]
매우매우 간단!!
- 우선 Dockerfile을 각 directory 안에 별도로 생성해줌
- 각각의 Jenkins pipeline script에 Dockerfile의 경로를 지정해줌 (지정해주지 않을 경우, 상위 디렉토리에 있는 Dockerfile을 자동으로 읽기 때문에 충돌 발생할 수 있음)
- 각각 아래와 같이 추가해줬다.
1. 스프링 Jenkins pipeline
# 기존 sudo docker build . -t $DOCKER_REPOSITORY --no-cache # 변경 sudo docker build . -t $DOCKER_REPOSITORY -f backend/Dockerfile --no-cache
2. 파이썬 Jenkins pipeline
# 기존 docker build -t $DOCKER_REPOSITORY . --no-cache # 변경 docker build -t $DOCKER_REPOSITORY -f python_backend/Dockerfile . --no-cache
반응형'Dev Ops > CI-CD' 카테고리의 다른 글