기존 프론트 컨테이너는 아래처럼 2개로 관리했었는데
services:
# 프론트엔드 빌드 서비스
frontend:
build:
context: . # 현재 디렉토리를 빌드 컨텍스트로 사용
dockerfile: dockerfile # 사용할 Dockerfile 지정
container_name: frontend-container # 컨테이너 이름
volumes:
#- build_volume:/usr/share/nginx/html # Nginx 컨테이너에서 제공할 빌드 결과물 경로에 매핑
- /etc/letsencrypt:/etc/letsencrypt:ro
#./dist:
# Nginx 컨테이너
frontend-nginx:
image: nginx:1.23-alpine # Nginx 이미지 사용
container_name: frontend-nginx # Nginx 컨테이너 이름
ports:
- "80:80"
- "443:443"
volumes:
# - build_volume:/usr/share/nginx/html
- ./nginx.conf:/etc/nginx/nginx.conf
- /etc/letsencrypt/archive/livflow.co.kr/fullchain2.pem:/etc/letsencrypt/live/livflow.co.kr/fullchain.pem
- /etc/letsencrypt/archive/livflow.co.kr/privkey2.pem:/etc/letsencrypt/live/livflow.co.kr/privkey.pem
- ./certbot:/var/www/certbot
volumes:
build_volume:
driver: local
driver_opts:
type: "none"
device: "./dist" # 빌드된 정적 파일들이 있는 경로를 지정
o: "bind"
사실 만들때부터 1개로..해도되나...? 하면서 만들긴했다.
백엔드만 배포해보다가 프론트엔드 배포를 처음해봐서 그런지 2개 컨테이너로 하는게 기본인가 했는데 역할을 생각해보면 1개여도 충분했었다.
근데 이 부분이 배포에서 문제를 일으킬줄 몰랐다. 보면 frontend-container, frontend-nginx
이렇게 있는데 frontend-nginx가 배포해주는 .DIST가 있는 컨테이너다. 이게 분리되어 있다보니
CICD도 잘되고, 서버에 코드도 최신화가 되는데 배포 .DIST파일이 과거 파일이라 웹페이지가 이전꺼로 보이는 문제가 발생했다. 괜히 이것때문에 소셜로그인 고쳐본다고 시간만 버렸다.
어쨋든 통합컨테이너로 바꾼 뒤 문제는 사라져서 다행이다.