Проблема
Я создал новый проект Django и попытался изменить базу данных по умолчанию на PostgreSQL. После изменения DATABASES
в settings.py я попытался запустить python manage.py migrate
в локальной среде и docker -компоновать контейнеры. Хотя он работал нормально в локальных настройках, docker -композиция не работала. Бросает django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2'
. ошибка. Итак, есть ли способ исправить это?
Действия по репликации ошибки
ОС: WSL Ubuntu 4.4.0-18362-Microsoft
docker-compose up -d
docker-compose exec web pipenv install psycopg2-binary==2.8.4
docker-compose down
docker-compose exec web python manage.py migrate
Настройки базы данных и Docker Файлы
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'Bardwolf@314',
'HOST': 'localhost',
'PORT': 5432
}
}
My docker -compose.yml, Dockerfile
Dockerfile
FROM python:3.8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /code
COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system
RUN pipenv run pip install psycopg2-binary==2.8.4
COPY . /code/
docker -compose.yml
version: '3.7'
services:
web:
build: .
command: python /code/manage.py runserver 0.0.0.0:8080
volumes:
- ./code
ports:
- 8080:8080
depends_on:
- db
db:
image: postgres:11