Nginx不使用docker compose run命令启动

Nginx不使用docker compose run命令启动,docker,nginx,server,docker-compose,dockerfile,Docker,Nginx,Server,Docker Compose,Dockerfile,我正在对我现有的应用程序进行归档。但有一个奇怪的问题。当我用 docker-compose up docker compose中的每个服务都成功运行,没有任何问题。但有些服务我有时不想运行(芹菜、芹菜节拍等)。为此我跑步 docker-compose run nginx 上面的命令应该运行使用docker-compose.yml配置的nginx、web、db服务,但它只运行web和db,而不运行nginx 这是我的yml文件 docker-compose.yml version: '3'

我正在对我现有的应用程序进行归档。但有一个奇怪的问题。当我用

docker-compose up
docker compose中的每个服务都成功运行,没有任何问题。但有些服务我有时不想运行(芹菜、芹菜节拍等)。为此我跑步

docker-compose run nginx
上面的命令应该运行使用docker-compose.yml配置的nginx、web、db服务,但它只运行web和db,而不运行nginx

这是我的yml文件

docker-compose.yml

version: '3'

services:
    db:
        image: postgres:12
        env_file: .env
        environment:
            - POSTGRES_DB=${DB_NAME}
            - POSTGRES_USER=${DB_USER}
            - POSTGRES_PASSWORD=${DB_PASSWORD}
        ports:
            - "5431:5432"
        volumes:
            - dbdata:/var/lib/postgresql/data
    nginx:
        image: nginx:1.14
        ports:
            - "443:443"
            - "80:80"
        volumes:
            - ./config/nginx/:/etc/nginx/conf.d
            - ./MyAPP/static:/var/www/MyAPP.me/static/
        depends_on:
            - web
    web:
        restart: always
        build: ./MyAPP
        command:  bash -c "
                    python manage.py collectstatic --noinput 
                    && python manage.py makemigrations
                    && python manage.py migrate
                    && gunicorn --certfile=/etc/certs/localhost.crt --keyfile=/etc/certs    /localhost.key MyAPP.wsgi:application --bind 0.0.0.0:443 --reload"
        expose:
            - "443"
        depends_on:
            - db
        env_file:
            - .env
        volumes:
            - ./MyAPP:/opt/MyAPP
            - ./config/nginx/certs/:/etc/certs
            - ./MyAPP/static:/var/www/MyAPP.me/static/

    broker:
        image: redis:alpine
        expose: 
            - "6379"
    
    celery:
        build: ./MyAPP
        command: celery -A MyAPP worker -l info
        env_file:
            - .env
        volumes:
            - ./MyAPP:/opt/MyAPP
        depends_on:
            - broker
            - db

    celery-beat:
        build: ./MyAPP
        command: celery -A MyAPP beat -l info
        env_file:
            - .env
        volumes:
            - ./MyAPP:/opt/MyAPP
        depends_on:
            - broker
            - db
    comment-classifier:
        image: codait/max-toxic-comment-classifier

volumes:
    dbdata:

TL;dr:
docker编写nginx


docker compose up
docker compose run
之间有着明显的区别。第一个构建(重新)创建、启动并连接到服务的容器。第二个对服务运行一次性命令。当您运行docker compose时,它会启动db和web,因为nginx依赖于它们,然后在nginx上运行单个命令并退出。因此,您必须使用
docker compose up nginx
,才能得到您想要的。

正是我想要的。非常感谢。