Skip to content

Commit 4549b3f

Browse files
authored
Merge pull request #330 from boostcampwm-2024/refactor/docker-compose-log
♻️ refactor: 리팩토링 레포지토리 파일 이동
2 parents 1f81411 + ca6f050 commit 4549b3f

36 files changed

+684
-1096
lines changed

client/.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ node_modules
1111
dist
1212
dist-ssr
1313
*.local
14-
1514
!.env.local
1615
!Dockerfile.local
1716

client/docker/Dockerfile.local

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ COPY ./client .
66

77
RUN npm ci
88

9-
RUN npm run build
9+
RUN npm run build:local
1010

1111
FROM nginx:1.18.0
1212

@@ -18,6 +18,8 @@ COPY ../../static /var/web05-Denamu/static
1818
COPY ../../nginx/scripts /etc/nginx/scripts
1919
COPY ../../nginx/nginx.conf /etc/nginx/nginx.conf
2020

21-
RUN sh "/etc/nginx/scripts/generate_cert.sh"
21+
RUN apt-get update && apt-get install dos2unix
22+
RUN dos2unix /etc/nginx/scripts/generate_cert.sh
23+
RUN bash "/etc/nginx/scripts/generate_cert.sh"
2224

2325
CMD ["nginx","-g","daemon off;"]

docker-compose/docker-compose.dev.yml

+91
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
name: denamu-dev
2+
3+
include:
4+
- docker-compose.infra.yml
5+
6+
services:
7+
# NGINX 서비스
8+
nginx:
9+
build:
10+
context: ../nginx
11+
dockerfile: Dockerfile.dev
12+
ports:
13+
- "80:80"
14+
- "443:443"
15+
networks:
16+
- Denamu
17+
depends_on:
18+
- app
19+
volumes:
20+
- ../nginx/logs:/var/log/nginx
21+
- ../nginx/nginx.conf:/etc/nginx/nginx.conf
22+
- ../static:/var/web05-Denamu/static
23+
develop:
24+
watch:
25+
- path: ../nginx/nginx.conf
26+
action: restart
27+
- path: ../nginx/scripts/generate_cert.sh
28+
action: rebuild
29+
30+
# Client 서비스
31+
web:
32+
build:
33+
context: ../client
34+
dockerfile: docker/Dockerfile.dev
35+
ports:
36+
- "5173:5173"
37+
networks:
38+
- Denamu
39+
volumes:
40+
- ../client:/var/web05-Denamu/client
41+
- /var/web05-Denamu/client/node_modules
42+
develop:
43+
watch:
44+
- path: ../client/package.json
45+
action: rebuild
46+
47+
# WAS 서비스
48+
app:
49+
build:
50+
context: ../server
51+
dockerfile: docker/Dockerfile.dev
52+
ports:
53+
- "8080:8080"
54+
networks:
55+
- Denamu
56+
depends_on:
57+
mysql-db:
58+
condition: service_healthy
59+
redis:
60+
condition: service_healthy
61+
volumes:
62+
- ../server:/var/web05-Denamu/server
63+
- /var/web05-Denamu/server/node_modules
64+
environment:
65+
NODE_ENV: "DEV"
66+
develop:
67+
watch:
68+
- path: ../server/package.json
69+
action: rebuild
70+
71+
# Feed Crawler 서비스
72+
feed-crawler:
73+
build:
74+
context: ../feed-crawler
75+
dockerfile: docker/Dockerfile.dev
76+
networks:
77+
- Denamu
78+
depends_on:
79+
mysql-db:
80+
condition: service_healthy
81+
redis:
82+
condition: service_healthy
83+
volumes:
84+
- ../feed-crawler:/var/web05-Denamu/feed-crawler
85+
- /var/web05-Denamu/feed-crawler/node_modules
86+
environment:
87+
NODE_ENV: "DEV"
88+
develop:
89+
watch:
90+
- path: ../feed-crawler/package.json
91+
action: rebuild
+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
services:
2+
# DB 서비스
3+
mysql-db:
4+
image: "mysql:8.0.39"
5+
ports:
6+
- "3306:3306"
7+
volumes:
8+
- denamu-mysql:/var/lib/mysql
9+
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
10+
networks:
11+
- Denamu
12+
command:
13+
- --character-set-server=utf8mb4
14+
- --collation-server=utf8mb4_unicode_ci
15+
- --skip-character-set-client-handshake
16+
environment:
17+
MYSQL_ROOT_PASSWORD: "denamu-db"
18+
MYSQL_DATABASE: "denamu"
19+
MYSQL_USER: "denamu-db-user"
20+
MYSQL_PASSWORD: "denamu-db-pw"
21+
MYSQL_ROOT_HOST: "%"
22+
healthcheck:
23+
test:
24+
[
25+
"CMD",
26+
"mysqladmin",
27+
"ping",
28+
"-h",
29+
"localhost",
30+
"-u",
31+
"root",
32+
"-pdenamu-db",
33+
]
34+
interval: 10s
35+
timeout: 5s
36+
retries: 3
37+
38+
# Redis 서비스
39+
redis:
40+
image: "redis:6.0.16-alpine"
41+
ports:
42+
- "6379:6379"
43+
volumes:
44+
- denamu-redis:/data
45+
networks:
46+
- Denamu
47+
entrypoint:
48+
[
49+
"sh",
50+
"-c",
51+
"redis-server & sleep 5 && echo 'ACL SETUSER denamu-redis-user on >denamu-redis-pw allkeys allcommands' | redis-cli && tail -f /dev/null",
52+
]
53+
healthcheck:
54+
test: ["CMD", "redis-cli", "ping"]
55+
interval: 10s
56+
timeout: 5s
57+
retries: 3
58+
59+
volumes:
60+
denamu-mysql:
61+
denamu-redis:
62+
63+
networks:
64+
Denamu:
65+
driver: bridge
+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: denamu-local-portfolio
2+
3+
include:
4+
- docker-compose.infra.yml
5+
6+
services:
7+
# NGINX + 프론트엔드 빌드
8+
nginx:
9+
build:
10+
context: ../
11+
dockerfile: client/docker/Dockerfile.local
12+
ports:
13+
- "80:80"
14+
- "443:443"
15+
networks:
16+
- Denamu
17+
depends_on:
18+
- app
19+
volumes:
20+
- ../nginx/logs:/var/log/nginx
21+
22+
# WAS 서비스
23+
app:
24+
build:
25+
context: ../server
26+
dockerfile: docker/Dockerfile.local
27+
ports:
28+
- "8080:8080"
29+
networks:
30+
- Denamu
31+
depends_on:
32+
mysql-db:
33+
condition: service_healthy
34+
redis:
35+
condition: service_healthy
36+
volumes:
37+
- ../server/logs:/var/web05-Denamu/server/logs
38+
environment:
39+
NODE_ENV: "LOCAL"
40+
41+
# Feed Crawler 서비스
42+
feed-crawler:
43+
build:
44+
context: ../feed-crawler
45+
dockerfile: docker/Dockerfile.local
46+
networks:
47+
- Denamu
48+
depends_on:
49+
mysql-db:
50+
condition: service_healthy
51+
redis:
52+
condition: service_healthy
53+
volumes:
54+
- ../feed-crawler/logs:/var/web05-Denamu/feed-crawler/logs
55+
environment:
56+
NODE_ENV: "LOCAL"

0 commit comments

Comments
 (0)