我在一个项目中使用django,我们正在从sqlite3切换到postgres,所以我们需要将postgres添加到docker。由于某些原因,webservice无法连接到postgres。这是我的docker-compose和设置。
services:
db:
image: postgres:latest
restart: always
container_name: db
environment:
- POSTGRES_USER=pipeline_user
- POSTGRES_PASSWORD=password
- POSTGRES_DB=pipeline_service
ports:
- "5432:5432"
networks:
- django
webservice:
build:
context: ./webservice
dockerfile: WebService.Dockerfile
command: python ./src/manage.py runserver 0.0.0.0:8000
ports:
- "8000:8000"
depends_on:
- db
networks:
- django
links:
- db:db
djangoq:
build:
context: ./webservice
dockerfile: WebService.Dockerfile
command: python ./src/manage.py qcluster
ports:
- "8001:8000"
depends_on:
- db
networks:
- django
links:
- db:db
ui:
build:
context: ./ui
dockerfile: UI.Dockerfile
ports:
- "4200:80"
depends_on:
- webservice
networks:
django:
driver: bridge
个字符
有人能看出我错过了什么吗?
我发现其他几个人也有这个问题,大多数解决方案都是在docker-compose.yml文件中添加网络或为postgres设置container_name,但这些对我不起作用。
1条答案
按热度按时间mm9b1k5b1#
根据大卫的评论,你不能用dockerfile运行migrate,但它确实是一个服务。我最终为postgres创建了第二个docker-compose文件,它启动了postgres并运行了迁移。这也很有帮助,因为每当docker关闭时,数据库就会被删除,所以你不必重新启动postgres。
字符串