Задать вопрос

Где ошибка в docker-compose файле?

Доброго времени суток!
Хочу поднять django приложение с postgresql.

Пример dockerfile
FROM python:3.6
ENV PYTHONUNBUFFERED 1

COPY ./requirements /requirements/
RUN pip install -r /requirements/local.txt

RUN apt-get update && apt-get upgrade

RUN apt-get install -y \
    postgresql-server-dev-all \
    postgresql-client

WORKDIR /app

EXPOSE 8080

Пример docker-compose
version: "2"
services:
  db:
    image: postgres
    expose:
      - "5432"
  web:
    restart: always
    image: test-project-django
    env_file: ./config/.env
    command: ./manage.py runserver 0.0.0.0:8080
    ports:
      - "8080:8080"
    volumes:
      - .:/app
    links:
      - db


Содержимое .env файла
DJANGO_DEBUG=True
DJANGO_SECRET_KEY="secret"
DJANGO_DATABASE_URL=postgres:///docker_django


в итоге, когда пытаюсь выполнить docker-compose up получаю следующую ошибку
django.db.utils.OperationalError: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Подскажите, пожалуйста, как исправить?
  • Вопрос задан
  • 599 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
Ликбез:
  1. В образе с приложением БД не должно быть
  2. Docker networks гораздо удобнее линкования контейнеров: не надо писать простыню линков у каждого контейнера, через алиасы можно легко определять hostname для других контейнеров внутри сети.

Касательно вашей проблемы: у вас джанго настроена на локальное подключение к БД, которая не запущена (и не понятно зачем она вообще в образе), тогда как должна быть настроена на подключение к другому контейнеру.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы