Nginx和Flask是否应在同一容器中运行

时间:2020-05-29 14:22:07

标签: docker nginx flask

理想情况是每个容器只有一个进程,但是 Flask + uwsgi Nginx 之间有很强的亲和力。

当前我们将它们一起运行,但是我们应该重构吗?

1 个答案:

答案 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

它被设计为在一个容器中只有一个主进程,在这种情况下,如果您的应用程序失败,则该容器将关闭。