fix(post-3.5g): Dockerfile CMD restore gunicorn 4-workers (HIGH-5)
All checks were successful
CD Pipeline / deploy (push) Successful in 9m13s
All checks were successful
CD Pipeline / deploy (push) Successful in 9m13s
從 4349db2~1 撈回 production 啟動指令。
問題:
- 4349db2 改回 `CMD ["python", "app.py"]` 用 Flask dev server 跑 production,
單進程、無 worker pool、debug 邏輯保留、效能與安全都不適合對外。
- EXPOSE 5000 與 docker-compose / k8s 實際使用 port 80 不符
(reference_docker_topology.md 確認 momo-pro-system 是 port 80)。
修法:
- CMD 改回:gunicorn --bind 0.0.0.0:80 --workers 4 --timeout 300
--access-logfile - --error-logfile - app:app
- EXPOSE 5000 → EXPOSE 80(對齊容器內實際綁定)
- requirements.txt 已含 gunicorn>=20.1,build 不需要其他改動
驗證:
- grep 確認 CMD 與 EXPOSE 已更新
- gunicorn 在 requirements.txt 中(line 不需求動)
Critic finding: HIGH-5
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -61,8 +61,8 @@ RUN rm -rf /app/components && ln -sf /app/templates/components /app/components
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
ENV FLASK_APP=app.py
|
||||
|
||||
# 暴露端口
|
||||
EXPOSE 5000
|
||||
# 暴露端口(容器內 app 綁 80,docker-compose / k8s 對外映射依環境而定)
|
||||
EXPOSE 80
|
||||
|
||||
# 啟動應用
|
||||
CMD ["python", "app.py"]
|
||||
# 啟動應用(production 用 gunicorn,4 workers + 300s timeout + 啟用 access/error log)
|
||||
CMD ["gunicorn", "--bind", "0.0.0.0:80", "--workers", "4", "--timeout", "300", "--access-logfile", "-", "--error-logfile", "-", "app:app"]
|
||||
|
||||
Reference in New Issue
Block a user