【发布时间】:2020-07-23 05:22:42
【问题描述】:
我正在尝试使用 docker 将我的项目与 postgres 数据库连接。当我使用默认的 postgres 设置时它工作正常
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'postgres',
'HOST': 'db',
'PORT': 5432
}
}
但是当我尝试使用 postgre admin 创建数据库并想在我的 django 项目中使用它时,它会显示错误。 我的 Dockerfile:
Dockerfile
# Pull base image
FROM python:3.7
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set work directory
WORKDIR /code
# Install dependencies
COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system
# Copy project
COPY . /code/
数据库的settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'library',
'USER': 'postgres',
'PASSWORD': 'my_password',
'HOST': 'db',
'PORT': 5432
}
}
还有 docker-compose.yml
docker-compose.yml
version: '3.7'
services:
db:
hostname: db
image: postgres:11
environment:
- POSTGRES_DB=library
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=my_password
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
volumes:
postgres_data:
【问题讨论】:
标签: django postgresql docker