我是一位能帮助您翻译文本的助手。
我有一个简单的Django Gunicorn、Nginx和PostgreSQL项目(每个服务都被Docker化了)。
当我使用docker-compose up运行它时,一切正常:
然而,当我使用PyCharm调试器启动它时,它不会运行nginx。
我怀疑,由于djangoapp依赖于我的docker-compose.yml文件中的数据库服务,它只是创建了它们两个,但没有运行nginx。
以下是我在使用PyCharm调试器运行后看到的内容:
这里是我的调试配置和解释器配置的图片。
我有一个简单的Django Gunicorn、Nginx和PostgreSQL项目(每个服务都被Docker化了)。
当我使用docker-compose up运行它时,一切正常:
maximd@ubuntu ~/PycharmProjects/MyQ (master) $ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------
myq_database1_1 docker-entrypoint.sh postgres Up 5432/tcp
myq_djangoapp_1 /bin/sh -c gunicorn --bind ... Up 8000/tcp
myq_nginx_1 nginx -g daemon off; Up 0.0.0.0:8000->80/tcp
然而,当我使用PyCharm调试器启动它时,它不会运行nginx。
我怀疑,由于djangoapp依赖于我的docker-compose.yml文件中的数据库服务,它只是创建了它们两个,但没有运行nginx。
以下是我在使用PyCharm调试器运行后看到的内容:
maximd@ubuntu ~/PycharmProjects/MyQ (master) $ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------------
myq_database1_1 docker-entrypoint.sh postgres Up 5432/tcp
myq_djangoapp_1 python -u /opt/.pycharm_he ... Up 0.0.0.0:55488->55488/tcp, 8000/tcp
myq_nginx_1 nginx -g daemon off; Exit 0
因此,我的问题是:是否有办法让nginx也成为djangoapp的依赖项?是否有办法使PyCharm运行所有服务而不仅仅是我试图调试的那个服务?
以下是我的docker-compose.yml文件:
version: '3'
services:
djangoapp:
build: .
volumes:
- .:/services/djangoapp
- static_volume:/services/djangoapp/static
- media_volume:/services/djangoapp/media
networks:
- nginx_network
- database1_network
depends_on:
- database1
nginx:
image: nginx:1.13
ports:
- 8000:80
volumes:
- ./config/nginx/conf.d:/etc/nginx/conf.d
- static_volume:/services/djangoapp/static
- media_volume:/services/djangoapp/media
depends_on:
- djangoapp
networks:
- nginx_network
database1: # <-- IMPORTANT: same name as in DATABASES setting, otherwise Django won't find the database!
image: postgres:10
env_file:
- config/db/database1_env
networks:
- database1_network
volumes:
- database1_volume:/var/lib/postgresql/data
networks:
nginx_network:
driver: bridge
database1_network:
driver: bridge
volumes:
database1_volume:
static_volume:
media_volume:
这里是我的调试配置和解释器配置的图片。
![远程解释器](https://istack.dev59.com/r00PA.webp)
![输入图像描述](https://istack.dev59.com/ycwge.webp)
djangoapp
服务,那么nginx容器就不会启动。但实际上这可能不是一个问题,因为在本地/开发/调试中,你不需要nginx:gunicorn就足够了。也许尝试在你的docker-compose中为djangoapp服务绑定- ports: 8000:8000
! - pawamoydocker-compose -f compose_file.yml up -d
来解决你的问题。 - pawamoy