Skip to content

Commit c25e447

Browse files
authored
Update docker and deployment script comments (#839)
* Update docker and deployment script comments * Update celery stdout logfile conf
1 parent 13359b7 commit c25e447

File tree

5 files changed

+76
-55
lines changed

5 files changed

+76
-55
lines changed

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ WORKDIR /fba/backend
4343
# === FastAPI server image ===
4444
FROM base_server AS fastapi_server
4545

46-
COPY deploy/backend/fastapi_server.conf /etc/supervisor/conf.d/
46+
COPY deploy/backend/fba_server.conf /etc/supervisor/conf.d/
4747

4848
RUN mkdir -p /var/log/fastapi_server
4949

@@ -54,7 +54,7 @@ CMD ["/usr/local/bin/granian", "main:app", "--interface", "asgi", "--host", "0.0
5454
# === Celery server image ===
5555
FROM base_server AS celery
5656

57-
COPY deploy/backend/celery.conf /etc/supervisor/conf.d/
57+
COPY deploy/backend/fba_celery.conf /etc/supervisor/conf.d/
5858

5959
RUN mkdir -p /var/log/celery
6060

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
1-
[program:celery_worker]
1+
[program:fba_celery_worker]
22
directory=/fba/backend
33
command=/usr/local/bin/celery -A app.task.celery worker -P gevent -c 1000 --loglevel=INFO
44
user=root
55
autostart=true
66
autorestart=true
77
startretries=5
88
redirect_stderr=true
9-
stdout_logfile=/var/log/celery/fba_celery_worker.log
9+
stdout_logfile=/var/log/fba/fba_celery_worker.log
1010
stdout_logfile_maxbytes=5MB
1111
stdout_logfile_backups=5
1212

13-
[program:celery_beat]
13+
[program:fba_celery_beat]
1414
directory=/fba/backend
1515
command=/usr/local/bin/celery -A app.task.celery beat --loglevel=INFO
1616
user=root
1717
autostart=true
1818
autorestart=true
1919
startretries=5
2020
redirect_stderr=true
21-
stdout_logfile=/var/log/celery/fba_celery_beat.log
21+
stdout_logfile=/var/log/fba/fba_celery_beat.log
2222
stdout_logfile_maxbytes=5MB
2323
stdout_logfile_backups=5
2424

25-
[program:celery_flower]
25+
[program:fba_celery_flower]
2626
directory=/fba/backend
2727
command=/usr/local/bin/celery -A app.task.celery flower --port=8555 --url-prefix=flower --basic-auth=admin:123456
2828
user=root
2929
autostart=true
3030
autorestart=true
3131
startretries=5
3232
redirect_stderr=true
33-
stdout_logfile=/var/log/celery/fba_celery_flower.log
33+
stdout_logfile=/var/log/fba/fba_celery_flower.log
3434
stdout_logfile_maxbytes=5MB
3535
stdout_logfile_backups=5
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
[program:fastapi_server]
1+
[program:fba_server]
22
directory=/fba/backend
33
command=/usr/local/bin/granian main:app --interface asgi --host 0.0.0.0 --port 8001 --workers 1 --backlog 1024 --workers-kill-timeout 120 --backpressure 2000 --pid-file /var/run/granian.pid --log --log-level debug
44
user=root
55
autostart=true
66
autorestart=true
77
startretries=5
88
redirect_stderr=true
9-
stdout_logfile=/var/log/fastapi_server/fba_server.log
9+
stdout_logfile=/var/log/fba/fba_server.log
1010
stdout_logfile_maxbytes=5MB
1111
stdout_logfile_backups=5

deploy/backend/nginx.conf

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,25 @@ server {
99
client_body_buffer_size 5M;
1010

1111
gzip on;
12-
gzip_comp_level 2;
13-
gzip_types text/plain text/css text/javascript application/javascript application/x-javascript application/xml application/x-httpd-php image/jpeg image/gif image/png;
12+
gzip_comp_level 6;
13+
gzip_types text/plain text/css text/javascript application/javascript application/json application/xml+rss application/xml+atom image/svg+xml font/otf font/ttf font/opentype;
14+
gzip_min_length 256;
1415
gzip_vary on;
1516

1617
keepalive_timeout 300;
1718

19+
access_log /var/log/nginx/access.log;
20+
1821
location / {
1922
proxy_pass http://fba_server:8001;
2023

2124
proxy_set_header Host $http_host;
2225
proxy_set_header X-Real-IP $remote_addr;
2326
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
2427
proxy_set_header X-Forwarded-Proto $scheme;
25-
proxy_connect_timeout 300s;
26-
proxy_send_timeout 300s;
27-
proxy_read_timeout 300s;
28+
proxy_connect_timeout 60s;
29+
proxy_send_timeout 60s;
30+
proxy_read_timeout 60s;
2831
}
2932

3033
location /flower/ {
@@ -34,9 +37,9 @@ server {
3437
proxy_set_header X-Real-IP $remote_addr;
3538
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
3639
proxy_set_header X-Forwarded-Proto $scheme;
37-
proxy_connect_timeout 300s;
38-
proxy_send_timeout 300s;
39-
proxy_read_timeout 300s;
40+
proxy_connect_timeout 60s;
41+
proxy_send_timeout 60s;
42+
proxy_read_timeout 60s;
4043
proxy_redirect off;
4144

4245
# WebSocket 支持

docker-compose.yml

Lines changed: 55 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,25 @@
1+
networks:
2+
fba_network:
3+
name: fba_network
4+
driver: bridge
5+
ipam:
6+
driver: default
7+
config:
8+
- subnet: 172.10.10.0/24
9+
10+
volumes:
11+
# 如果你是 postgres 用户,应将 fba_mysql 修改为 fba_postgres
12+
fba_mysql:
13+
name: fba_mysql
14+
fba_redis:
15+
name: fba_redis
16+
fba_static:
17+
name: fba_static
18+
fba_static_upload:
19+
name: fba_static_upload
20+
fba_rabbitmq:
21+
name: fba_rabbitmq
22+
123
services:
224
fba_server:
325
build:
@@ -6,6 +28,7 @@ services:
628
image: fba_server:latest
729
container_name: fba_server
830
restart: always
31+
# 如果你是 postgres 用户,应将 fba_mysql 修改为 fba_postgres
932
depends_on:
1033
- fba_mysql
1134
- fba_redis
@@ -16,6 +39,7 @@ services:
1639
- fba_static_upload:/fba/backend/static/upload
1740
networks:
1841
- fba_network
42+
# 如果你是 postgres 用户,应将 fba_mysql:3306 修改为 fba_postgres:5432
1943
command:
2044
- bash
2145
- -c
@@ -44,20 +68,21 @@ services:
4468
--collation-server=utf8mb4_general_ci
4569
--lower_case_table_names=1
4670

47-
# fba_postgres:
48-
# image: postgres:16
49-
# ports:
50-
# - "${DOCKER_POSTGRES_MAP_PORT:-5432}:5432"
51-
# container_name: fba_postgres
52-
# restart: always
53-
# environment:
54-
# POSTGRES_DB: fba
55-
# POSTGRES_PASSWORD: 123456
56-
# TZ: Asia/Shanghai
57-
# volumes:
58-
# - fba_postgres:/var/lib/postgresql/data
59-
# networks:
60-
# - fba_network
71+
# # 如果你是 postgres 用户,应保留 fba_postgres 容器脚本并删除 fba_mysql 容器脚本
72+
# fba_postgres:
73+
# image: postgres:16
74+
# ports:
75+
# - "${DOCKER_POSTGRES_MAP_PORT:-5432}:5432"
76+
# container_name: fba_postgres
77+
# restart: always
78+
# environment:
79+
# POSTGRES_DB: fba
80+
# POSTGRES_PASSWORD: 123456
81+
# TZ: Asia/Shanghai
82+
# volumes:
83+
# - fba_postgres:/var/lib/postgresql/data
84+
# networks:
85+
# - fba_network
6186

6287
fba_redis:
6388
image: redis
@@ -72,6 +97,9 @@ services:
7297
networks:
7398
- fba_network
7499

100+
# 【后端专用】
101+
# 如果使用此容器,意味着你只需部署后端 API 服务,不需要前端
102+
# 这与下面的 fba_ui 容器冲突,如果你选择使用 fba_ui 容器,你应该注释或删除 fba_nginx 容器脚本
75103
fba_nginx:
76104
image: nginx
77105
ports:
@@ -87,6 +115,8 @@ services:
87115
networks:
88116
- fba_network
89117

118+
# # 如果服务器内存小于 4GB,CPU 小于四个内核
119+
# # 建议通过前端工程单独构建此容器或在本地进行构建
90120
# fba_ui:
91121
# build:
92122
# context: /root/fastapi_best_architecture_ui
@@ -104,9 +134,18 @@ services:
104134
# - -g
105135
# - daemon off;
106136
# volumes:
107-
# # - local_ssl_pem_path:/etc/ssl/xxx.pem
108-
# # - local_ssl_key_path:/etc/ssl/xxx.key
137+
# # nginx https conf
138+
# # 通过 docker 进行部署时,需要打开此配置项并确保<挂载到容器内的证书文件路径>配置
139+
# # 与 nginx conf 中的 ssl 证书文件路径配置一致,如果你直接将 ssl 证书文件 cp
140+
# # 到了 docker 容器内,则无需挂载证书文件,直接将它们注释或删除即可
141+
# # local_ssl_pem_path:你在服务器存放 ssl pem 证书文件的路径,自行修改
142+
# # local_ssl_key_path: 你在服务器存放 ssl key 证书文件的路径,自行修改
143+
# # /etc/ssl/xxx.pem:挂载到容器内 ssl pem 证书文件的路径,自行修改
144+
# # /etc/ssl/xxx.key:挂载到容器内 ssl key 证书文件的路径,自行修改
145+
# - local_ssl_pem_path:/etc/ssl/xxx.pem
146+
# - local_ssl_key_path:/etc/ssl/xxx.key
109147
# - fba_static:/www/fba_server/backend/static
148+
# - fba_static_upload:/www/fba_server/backend/static/upload
110149
# networks:
111150
# - fba_network
112151

@@ -150,24 +189,3 @@ services:
150189
wait-for-it -s fba_rabbitmq:5672 -t 300
151190
supervisord -c /etc/supervisor/supervisord.conf
152191
supervisorctl restart
153-
154-
networks:
155-
fba_network:
156-
name: fba_network
157-
driver: bridge
158-
ipam:
159-
driver: default
160-
config:
161-
- subnet: 172.10.10.0/24
162-
163-
volumes:
164-
fba_mysql:
165-
name: fba_mysql
166-
fba_redis:
167-
name: fba_redis
168-
fba_static:
169-
name: fba_static
170-
fba_static_upload:
171-
name: fba_static_upload
172-
fba_rabbitmq:
173-
name: fba_rabbitmq

0 commit comments

Comments
 (0)