理想情况是每个容器只有一个进程,但是 Flask + uwsgi 和 Nginx 之间有很强的亲和力。
当前我们将它们一起运行,但是我们应该重构吗?
答案 0 :(得分:3)
是的,重构是一个好主意。尝试使服务短暂,并仅在其中运行一个主要过程。因此,最后,您需要具有以下内容:
version: '3.4'
services:
web:
build:
dockerfile: Dockerfile
context: .
ports:
- 8000:8000
volumes:
- .:/app/
env_file:
- common.env
nginx:
restart: always
image: nginx:1.18-alpine
ports:
- 80:80
- 443:443
volumes:
- ./deployment/nginx.conf:/etc/nginx/conf.d/default.conf
- ./deployment/config.conf:/etc/nginx/nginx.conf
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\";'"
depends_on:
- web
它被设计为在一个容器中只有一个主进程,在这种情况下,如果您的应用程序失败,则该容器将关闭。