SSAFY 특화 프로젝트 기록_20240325
21일 차
오늘 한 것
어려웠던 점
- 설정한 파일들이 Dockerfile, docker-compose, jenkins pipeline script 이렇게 세개가 있다보니 뭘 건드려야 하는지 헷갈렸다. 머리에서 꼬여서 손으로 적으면서 생각 정리를 했음
- Pipeline Script의
Groovy
와 그 안의 sh
문법이 초면이라 문법에서 오류가 나면 힘들었다.
- Script에서 전역변수 설정
- Nginx가 restart되면 내려가서 reload를 해야했는데,
nginx.service is not active, cannot reload
에러 발생
새로 알게 된 점
- 돌아가는 container의 image를 지우면 안된다.
- 한 개의 image로 여러 container을 돌릴 수 있다.
- 무중단 배포 순서
- 이미지 build하고 dockerhub에 push
- Blue/Green Port 확인 후 Port와 컨테이너명 변경
docker image pull
받고 위에서 새롭게 지정한 port로 docker run
- Nginx 포트 변경 후 reload
- 연결 체크 후 옛날 컨테이너 삭제
Groovy
에서 '''
는 읽기 전용, 전역 변수를 사용하려면 """
를 사용해야함
- 도커 컨테이너 내의 nginx를 Jenkins Script로 reload하려면
docker exec nginx nginx -s reload
이렇게 하면 됨
내일 할 것