EC2에 nginx와 jenkins를 도커로 설치하면 벌어지는 일들...feat. 통곡의 벽

llunaB·2022년 3월 17일
0

nginx

어려움 1. default.conf 변경해주러 매번 컨테이너 들어가야함

해결 1. 컨테이너 매번 들어가서 명령어 입력해준다. ^^
해결 2. 나의 경우, 프론트를 빌드(엔진엑스 이미지 만들때) 할 때, 도커파일과 동일경로에 default.conf 를 커스텀해서 만들어두고, 도커 이미지를 만들 때 마다 COPY 옵션을 통해 엔진엑스 컨테이너의 해당 경로로 복제되게 설정해두었다.

어려움 2. 경로 포트포워딩 해줄때 localhost가 ec2호스트가 아닌 다른 컨테이너를 찾아감.

관련 질문
https://stackoverflow.com/questions/38346847/nginx-docker-container-502-bad-gateway-response
해결 : -

어려움 3. nginx 재실행을 간단한 reload 명령어로 해줄 수 없음

해결 : 다음 명령어를 사용하여 컨테이너 내부에서 reload 해줌

docker exec -i nginx nginx -s reload

jenkins

어려움 1. 젠킨스 안에서 도커를 띄우는 것은 결국 도커인도커 이므로, 도커아웃오브도커 설정을 위해 컨테이너 실행시 -v 옵션으로 매핑해주어 호스트의 도커소켓을 매핑해주어야함.

관련정보
https://kanoos-stu.tistory.com/53
해결 : -v /var/run/docker.sock:/var/run/docker.sock 을 추가하여 컨테이너 실행

어려움 2. 젠킨스 내부에서 빌드할 경우 플러그인 설치해야 함 + EC2 호스트에도 플러그인 설치해야함

해결 : gradle 은 따로 설치, npm, node 는 nginx 도커파일 빌드할때 함께 설치

결론...

내가 아는 지식 수준에 한해서
nginx 와 jenkins 는 도커로 띄웠을 때의 장점보다 단점이 더 크다는 결론이다.

profile
안녕하세요. 성장하는 주니어 개발자입니다. :-)

0개의 댓글