Skip to content

Commit 5a49d20

Browse files
authored
Update celery related docker container independence (#943)
* Update celery related docker container independence * Fix lint * Fix nginx conf
1 parent 7641d59 commit 5a49d20

File tree

9 files changed

+110
-59
lines changed

9 files changed

+110
-59
lines changed

Dockerfile

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,20 +49,36 @@ RUN mkdir -p /var/log/fba
4949

5050
EXPOSE 8001
5151

52-
CMD ["/usr/local/bin/granian", "main:app", "--interface", "asgi", "--host", "0.0.0.0", "--port","8000"]
52+
CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]
5353

54-
# === Celery server image ===
55-
FROM base_server AS fba_celery
54+
# === Celery Worker image ===
55+
FROM base_server AS fba_celery_worker
5656

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

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

61-
RUN chmod +x celery-start.sh
61+
CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]
62+
63+
# === Celery Beat image ===
64+
FROM base_server AS fba_celery_beat
65+
66+
COPY deploy/backend/fba_celery_beat.conf /etc/supervisor/conf.d/
67+
68+
RUN mkdir -p /var/log/fba
69+
70+
CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]
71+
72+
# === Celery Flower image ===
73+
FROM base_server AS fba_celery_flower
74+
75+
COPY deploy/backend/fba_celery_flower.conf /etc/supervisor/conf.d/
76+
77+
RUN mkdir -p /var/log/fba
6278

6379
EXPOSE 8555
6480

65-
CMD ["./celery-start.sh"]
81+
CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]
6682

6783
# Build image
6884
FROM ${SERVER_TYPE}

backend/app/task/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616
如果你想对任务进行目录层级划分,使任务结构更加清晰,你可以新建任意目录,但必须注意的是
1717

1818
1.`backend/app/task/tasks` 目录下新建 python 包目录
19-
2. 新建目录后,务必更新 `conf.py` 配置中的 `CELERY_TASKS_PACKAGES`,将新建目录模块路径添加到此列表
20-
3. 在新建目录下,务必添加 `tasks.py` 文件,并在此文件中编写相关任务代码
19+
2. 在新建目录下,务必添加 `tasks.py` 文件,并在此文件中编写相关任务代码
2120

2221
## 消息代理
2322

backend/celery-start.sh

Lines changed: 0 additions & 10 deletions
This file was deleted.

deploy/backend/fba_celery.conf

Lines changed: 0 additions & 35 deletions
This file was deleted.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[program:fba_celery_beat]
2+
directory=/fba/backend
3+
command=/usr/local/bin/celery -A app.task.celery beat --loglevel=INFO
4+
user=root
5+
autostart=true
6+
autorestart=true
7+
startretries=5
8+
redirect_stderr=true
9+
stdout_logfile=/var/log/fba/fba_celery_beat.log
10+
stdout_logfile_maxbytes=5MB
11+
stdout_logfile_backups=5
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[program:fba_celery_flower]
2+
directory=/fba/backend
3+
command=/usr/local/bin/celery -A app.task.celery flower --port=8555 --url-prefix=flower --basic-auth=admin:123456
4+
user=root
5+
autostart=true
6+
autorestart=true
7+
startretries=5
8+
redirect_stderr=true
9+
stdout_logfile=/var/log/fba/fba_celery_flower.log
10+
stdout_logfile_maxbytes=5MB
11+
stdout_logfile_backups=5
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[program:fba_celery_worker]
2+
directory=/fba/backend
3+
command=/usr/local/bin/celery -A app.task.celery worker -P gevent -c 1000 --loglevel=INFO
4+
user=root
5+
autostart=true
6+
autorestart=true
7+
startretries=5
8+
redirect_stderr=true
9+
stdout_logfile=/var/log/fba/fba_celery_worker.log
10+
stdout_logfile_maxbytes=5MB
11+
stdout_logfile_backups=5

deploy/backend/nginx.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ server {
3131
}
3232

3333
location /flower/ {
34-
proxy_pass http://fba_server:8555;
34+
proxy_pass http://fba_celery_flower:8555;
3535

3636
proxy_set_header Host $http_host;
3737
proxy_set_header X-Real-IP $remote_addr;

docker-compose.yml

Lines changed: 53 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ services:
3434
depends_on:
3535
- fba_postgres
3636
- fba_redis
37-
- fba_celery
3837
volumes:
3938
- ./deploy/backend/docker-compose/.env.server:/fba/backend/.env
4039
- fba_static:/fba/backend/app/static
@@ -167,19 +166,68 @@ services:
167166
networks:
168167
- fba_network
169168

170-
fba_celery:
169+
fba_celery_worker:
171170
build:
172171
context: .
173172
dockerfile: Dockerfile
174173
args:
175-
- SERVER_TYPE=fba_celery
176-
image: fba_celery:latest
174+
- SERVER_TYPE=fba_celery_worker
175+
image: fba_celery_worker:latest
176+
# 如果你需要分布式部署 Worker,则必须移除此 container_name 配置
177+
container_name: fba_celery_worker
178+
restart: always
179+
depends_on:
180+
- fba_rabbitmq
181+
volumes:
182+
- ./deploy/backend/docker-compose/.env.server:/fba/backend/.env
183+
networks:
184+
- fba_network
185+
command:
186+
- bash
187+
- -c
188+
- |
189+
wait-for-it -s fba_rabbitmq:5672 -t 300
190+
supervisord -c /etc/supervisor/supervisord.conf
191+
supervisorctl restart
192+
193+
fba_celery_beat:
194+
build:
195+
context: .
196+
dockerfile: Dockerfile
197+
args:
198+
- SERVER_TYPE=fba_celery_beat
199+
image: fba_celery_beat:latest
200+
container_name: fba_celery_beat
201+
restart: always
202+
depends_on:
203+
- fba_rabbitmq
204+
- fba_celery_worker
205+
volumes:
206+
- ./deploy/backend/docker-compose/.env.server:/fba/backend/.env
207+
networks:
208+
- fba_network
209+
command:
210+
- bash
211+
- -c
212+
- |
213+
wait-for-it -s fba_rabbitmq:5672 -t 300
214+
supervisord -c /etc/supervisor/supervisord.conf
215+
supervisorctl restart
216+
217+
fba_celery_flower:
218+
build:
219+
context: .
220+
dockerfile: Dockerfile
221+
args:
222+
- SERVER_TYPE=fba_celery_flower
223+
image: fba_celery_flower:latest
177224
ports:
178225
- "8555:8555"
179-
container_name: fba_celery
226+
container_name: fba_celery_flower
180227
restart: always
181228
depends_on:
182229
- fba_rabbitmq
230+
- fba_celery_worker
183231
volumes:
184232
- ./deploy/backend/docker-compose/.env.server:/fba/backend/.env
185233
networks:

0 commit comments

Comments
 (0)