Python 加点芹菜和芹菜的Django
我正在努力为我的Django项目创建一个docker形象。我用芹菜和Redis做经纪人和Postgres。 创建容器时出现以下错误:Python 加点芹菜和芹菜的Django,python,postgresql,docker,docker-compose,django-celery,Python,Postgresql,Docker,Docker Compose,Django Celery,我正在努力为我的Django项目创建一个docker形象。我用芹菜和Redis做经纪人和Postgres。 创建容器时出现以下错误: django.db.utils.OperationalError:无法将主机名“db”转换为地址:没有与主机名关联的地址 Dockerfile FROM python:3.6 ENV PYTHONUNBUFFERED 1 ENV DJANGO_ENV dev ENV DOCKER_CONTAINER 1 COPY ./requirements.txt /co
django.db.utils.OperationalError:无法将主机名“db”转换为地址:没有与主机名关联的地址
Dockerfile
FROM python:3.6
ENV PYTHONUNBUFFERED 1
ENV DJANGO_ENV dev
ENV DOCKER_CONTAINER 1
COPY ./requirements.txt /code/requirements.txt
RUN pip install -r /code/requirements.txt
COPY /src/ /code/
WORKDIR /code/
EXPOSE 8000
docker-compose.yml
version: "3"
services:
db:
image: postgres
expose:
- "5432"
redis:
image: "redis:alpine"
web:
build: .
command: bash -c "python /code/manage.py migrate --noinput && python /code/manage.py runserver 0.0.0.0:8000"
ports:
- "8000:8000"
depends_on:
- db
- redis
celery:
build: .
command: celery -A core worker -l info
depends_on:
- db
- redis
celery-beat:
build: .
command: celery -A core beat -l info
depends_on:
- db
- redis
设置.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}
知道我做错了什么吗?我很确定这与settings.py中的数据库配置有关,因为在我更改它之前,它工作正常,我可以运行我的应用程序并测试芹菜。我认为问题可能是Postgres没有启动。取决于不幸的是,不要等到博士后将正确设置。能否尝试在
web
service命令中添加sleep 20
?使用docker ps
检查容器的结果名称,它还应包含文件夹名称。使用它作为主机名。我在其他地方发现了问题。事实证明,我有一些容器使用db服务和旧postgress,它使用的是旧数据。日志顶部有错误,但在终端中很难注意到。必须运行docker compose down
来清除数据库,下一次构建时一切都按预期进行我认为问题可能是Postgres没有启动。取决于不幸的是,不要等到博士后将正确设置。能否尝试在web
service命令中添加sleep 20
?使用docker ps
检查容器的结果名称,它还应包含文件夹名称。使用它作为主机名。我在其他地方发现了问题。事实证明,我有一些容器使用db服务和旧postgress,它使用的是旧数据。日志顶部有错误,但在终端中很难注意到。必须运行docker compose down
以清除数据库,并且在下一次构建中一切都按预期进行