Докер вместе с Джанго и Постгресом - PullRequest
0 голосов
/ 16 ноября 2018

Наличие следующей конфигурации в settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql$
        'NAME': 'database1',                   # Or path to database file if $
        # The following settings are not used with sqlite3:
        'USER': 'database1_role',
        'PASSWORD': 'database1_password',
        'HOST': 'database1',                      # Empty for localhost throu$
        'PORT': '5432',                      # Set to empty string for defaul$
        'ATOMIC_REQUESTS': True
    }
}

докер-compose.yml:

version: '3'

services:

  # web container, with django + gunicorn
  djangoapp:
    build: .
    environment:
      - DJANGO_SETTINGS_MODULE
    volumes:
      - .:/opt/services/djangoapp/src
      - static:/opt/services/djangoapp/static
      - media:/opt/services/djangoapp/media
    networks:
      - database1_network
      - nginx_network
    depends_on:
      - database1

  # reverse proxy container (nginx)
  nginx:
    image: nginx:1.13
    ports:
      - 8000:80
    volumes:
      - ./config/nginx/conf.d:/etc/nginx/conf.d
      - static:/opt/services/djangoapp/static
      - media:/opt/services/djangoapp/media
    networks:
      - nginx_network
    depends_on:
      - djangoapp

  # database containers, one for each db
  database1:
    image: postgres:10
    environment:
      POSTGRES_USER: database1_role
      POSTGRES_PASSWORD: database1_password
      POSTGRES_DB: database1
    ports:
      - "5432"
    volumes:
      - database1_volume:/var/lib/postgresql/data
    networks:
      - database1_network


networks:
  database1_network:
    driver: bridge
  nginx_network:
    driver: bridge

volumes:
  database1_volume:
  static:
  media:

Я все еще получаю сообщение об ошибке при попытке получить доступ к своему сайту с помощью веб-браузера:

OperationalError at / FATAL: аутентификация по паролю не удалась для пользователя

"database1_role"

Раньше у меня было сообщение о том, что моя база данных даже не существует / psycopg2 не может установить с ней какие-либо связи. Я решил это, заменив имя БД в обоих файлах: settings.py, а также POSTGRES_DB, но в настоящий момент я буквально не знаю, что делать прямо сейчас.

Чтобы запустить эту настройку, я использую эти две команды:

docker-compose build
docker-compose up

Команда:

docker-compose ps

ясно говорит, что работают три компонента:

              Name                             Command               State    Ports
-----------------------------------------------------------------------------------
services_database1_1_f84f6d3c38e0   docker-entrypoint.sh postgres    Exit 0        
services_djangoapp_1_da56c77d50ff   gunicorn -c config/gunicor ...   Exit 0        
services_nginx_1_c6e0edb717c0       nginx -g daemon off;             Exit 0  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...