Skip to content

Commit

Permalink
chore: docker compose의 dev 프로필 분리
Browse files Browse the repository at this point in the history
[#76]
  • Loading branch information
LLagoon3 committed Nov 17, 2024
1 parent bfd4bd9 commit 909d5a9
Show file tree
Hide file tree
Showing 2 changed files with 110 additions and 7 deletions.
61 changes: 54 additions & 7 deletions backend/docker-compose.yml → docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,73 @@ services:
ports:
- "80:80"
volumes:
- ../nginx.conf:/etc/nginx/nginx.conf
- ../frontend/dist:/static
- ./nginx.conf:/etc/nginx/nginx.conf
- ./frontend/dist:/static
depends_on:
- betting_duck_app
networks:
- betting_duck_network
profiles:
- prod

nginx_dev:
image: nginx:latest
container_name: nginx-server
ports:
- "80:80"
volumes:
- ./nginx.dev.conf:/etc/nginx/nginx.conf
- ./frontend/dist:/static
depends_on:
- betting_duck_app_dev
networks:
- betting_duck_network
profiles:
- dev

betting_duck_app:
image: node:22.11.0-alpine
container_name: betting_duck_app
working_dir: /app/backend
volumes:
- ../:/app
- ./:/app
ports:
- "${SERVER_PORT}:3000"
# 배포용 커맨드
command: >
sh -c " npm install -g pnpm && \
cd ../backend && pnpm install && \
pnpm run start "
environment:
POSTGRES_HOSTNAME: ${POSTGRES_HOSTNAME}
POSTGRES_PORT: ${POSTGRES_PORT}
POSTGRES_DB_NAME: ${POSTGRES_DB_NAME}
POSTGRES_USERNAME: ${POSTGRES_USERNAME}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB_NAME_DB_SYNCHRONIZE: ${POSTGRES_DB_NAME_DB_SYNCHRONIZE}
REDIS_HOSTNAME: ${REDIS_HOSTNAME}
REDIS_PORT: ${REDIS_PORT}
depends_on:
- postgres_db
- redis
networks:
- betting_duck_network
profiles:
- prod

betting_duck_app_dev:
image: node:22.11.0-alpine
container_name: betting_duck_app
working_dir: /app/backend
volumes:
- ./:/app
ports:
- "${SERVER_PORT}:3000"
# 테스트용
# 테스트용 커맨드
command: >
sh -c " npm install -g pnpm && \
cd ../shared && pnpm install && \
cd ../backend && pnpm install && \
tail -f /dev/null "
# command: >
# sh -c " npm install -g pnpm && pnpm install && pnpm run start "
environment:
POSTGRES_HOSTNAME: ${POSTGRES_HOSTNAME}
POSTGRES_PORT: ${POSTGRES_PORT}
Expand All @@ -50,6 +94,9 @@ services:
- redis
networks:
- betting_duck_network
profiles:
- dev


postgres_db:
image: postgres:15
Expand Down
56 changes: 56 additions & 0 deletions nginx.dev.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
worker_processes auto;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

# 업스트림 서버 정의
upstream backend_servers {
# 백엔드 서버 목록 (로드 밸런싱 대상 서버)
server betting_duck_app_dev:3000;
}

server {
listen 80;

# 일반 API 요청 처리
location /api {
proxy_pass http://backend_servers/api;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

# Socket.IO 요청 처리
location /socket.io/ {
proxy_pass http://backend_servers/socket.io/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# WebSocket 시간 초과 설정
proxy_read_timeout 60s;
proxy_send_timeout 60s;

# 버퍼 크기 설정
proxy_buffering off;
}

# 정적 파일 경로 설정
location / {
root /static/;
index index.html;
autoindex off;
try_files $uri /index.html;
}
}
}

0 comments on commit 909d5a9

Please sign in to comment.