Как изменить настройки docker для нескольких баз данных для проекта django?

Мой файл разработки выглядит следующим образом:

version: '3'

services:
  db:
    image: mdillon/postgis
    container_name: sl_database
    ports:
      - "5432:5432"
    volumes:
      - db_vesatogo_starling_v1:/var/lib/postgresql/data
    env_file:
      - ./config/dev.env
    networks: 
      - db_network

  pgadmin:
    image: dpage/pgadmin4:4.28
    container_name: sl_admin
    links:
      - db
    depends_on:
      - db
    environment:
      PGADMIN_DEFAULT_EMAIL: admin
      PGADMIN_DEFAULT_PASSWORD: password
    ports:
      - "80:80"
    networks: 
      - db_network

  redis:
    image: redis:latest
    container_name: sl_redis
    ports:
      - "6379:6379"
    restart: always
    networks: 
      - redis_network

networks:
  db_network:
    driver: bridge
  redis_network:
    driver: bridge

volumes:
  db_vesatogo_starling_v1:
  static:

Теперь я ввел в настройки реплику баз данных. Какие изменения я должен внести в файл разработки для реализации нескольких баз данных? Я попробовал добавить базу данных на другой сервер, который в данном случае 5433, так как я запускаю свою основную базу данных на 5432, но он показывает мне следующую ошибку: "Не удалось подключиться к серверу: Connection refused Сервер работает на хосте "db-replica" (172.25.0.3) и принимает TCP/IP соединения на порт 5433?". Пожалуйста, помогите мне!

  1. Сохраните разные имена служб, например, db:
  2. .
  3. Используйте отдельный порт хоста, но сохраните тот же порт контейнера "HOST_PORT:5432"
  4. .
  5. Создайте разные тома для этих реплик.

Позаботившись об этих трех пунктах, я думаю, вам не нужно ни о чем беспокоиться.

Это лишнее: Ваши службы db и pgadmin находятся в одной сети, следовательно, они могут общаться друг с другом. но службы redis не могут быть доступны двум другим службам. Чтобы исправить это, добавьте redis_network в pgadmin (предполагая, что pgadmin является точкой доступа)

Вернуться на верх