-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
129 lines (118 loc) · 3 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
version: '3.8'
networks:
betting_duck_network:
driver: bridge
services:
nginx:
image: nginx:latest
container_name: nginx-server
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./frontend/dist:/static
# SSL 설정
- ./fullchain.pem:/ssl/fullchain.pem
- ./privkey.pem:/ssl/privkey.pem
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
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 ../backend && pnpm install && \
tail -f /dev/null "
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:
- dev
postgres_db:
image: postgres:15
container_name: postgres_db
environment:
POSTGRES_USER: ${POSTGRES_USERNAME}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB_NAME}
ports:
- "${POSTGRES_PORT}:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
# - ./db-init.sql:/docker-entrypoint-initdb.d/init.sql
networks:
- betting_duck_network
redis:
image: redis:latest
container_name: redis
ports:
- "${REDIS_PORT}:6379"
networks:
- betting_duck_network
volumes:
postgres_data: