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
,才能得到您想要的。正是我想要的。非常感谢。