Я пытаюсь подключить локальный сервер postgreSQL (имя базы данных = cvat_lcl) к контейнеру, созданному с помощью docker-compose: НДС. Я могу использовать локальный pgAdmin для чтения обычной базы данных, размещенной в контейнере (на порту 5444), но конечной целью моего развертывания является запуск локальной версии postgresql и подключение контейнера CVAT к этому, а не к встроенному в базе данных. Я новичок в сети, поэтому не слишком уверен, с чего начать.
Что я сделал до сих пор:
pg_hba.conf
:
# Административный вход в базу данных через сокет домена Unix
локальный все одноранговые узлы postgres
# ТИП БАЗЫ ДАННЫХ АДРЕС ПОЛЬЗОВАТЕЛЯ МЕТОД
# "local" только для соединений сокетов домена Unix
локальные все все одноранговые
# Локальные соединения IPv4:
хост все все 127.0.0.1/32 md5
# Локальные соединения IPv6:
хост все все ::1/128 md5
# Разрешить подключения репликации с локального хоста пользователем с
# привилегия репликации.
локальная репликация всех одноранговых узлов
репликация узла все 127.0.0.1/32 md5
репликация хоста все ::1/128 md5
хост все все 172.17.0.0/16 md5
postgres.conf
# - Настройки соединения -
listen_addresses = '*' # IP-адрес(а) для прослушивания;
# список адресов через запятую;
# по умолчанию 'localhost'; используйте '*' для всех
# (для изменения требуется перезагрузка)
порт = 5433# (для изменения требуется перезагрузка)
ifconfig -a
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
инет 172.17.0.1 сетевая маска 255.255.0.0 широковещательная рассылка 172.17.255.255
inet6 fe80::42:c0ff:fe03:86ac prefixlen 64 scopeid 0x20<ссылка>
эфир 02:42:c0:03:86:ac txqueuelen 0 (Ethernet)
Пакеты RX 0 байт 0 (0,0 Б)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 4372 байта 873445 (873,4 КБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
докер-compose.yml
версия: '3.3'
Сервисы:
cvat_db:
имя_контейнера: cvat_db
изображение: postgres:10-alpine
перезапуск: всегда
среда:
POSTGRES_USER: корень
POSTGRES_DB: cват
POSTGRES_HOST_AUTH_METHOD: доверие
тома:
- cvat_db:/var/lib/postgresql/данные
сети:
- cват
порты:
- "5444:5432"
cvat_redis:
имя_контейнера: cvat_redis
изображение: redis:4.0-alpine
перезапуск: всегда
сети:
- cват
cват:
имя_контейнера: cvat
изображение: openvino/cvat_server
перезапуск: всегда
зависит от:
- cvat_redis
- cvat_db
среда:
DJANGO_MODWSGI_EXTRA_ARGS: ''
РАЗРЕШЕННЫЕ_ХОСТА: '*'
CVAT_REDIS_HOST: 'cvat_redis'
CVAT_POSTGRES_HOST: 'cvat_db'
ADAPTIVE_AUTO_ANNOTATION: «ложь»
этикетки:
- traefik.enable=true
- traefik.http.services.cvat.loadbalancer.server.port=8080
- traefik.http.routers.cvat.rule=Host(`${CVAT_HOST:-localhost}`) &&
PathPrefix(`/api/`, `/git/`, `/opencv/`, `/analytics/`, `/static/`, `/admin`, `/documentation/`, `/django-rq`)
- traefik.http.routers.cvat.entrypoints=веб
тома:
- cvat_data:/home/django/data
- cvat_keys:/home/django/keys
- cvat_logs:/home/django/журналы
сети:
- cват
cvat_ui:
имя_контейнера: cvat_ui
изображение: openvino/cvat_ui
перезапуск: всегда
зависит от:
- cват
этикетки:
- traefik.enable=true
- traefik.http.services.cvat-ui.loadbalancer.server.port=80
- traefik.http.routers.cvat-ui.rule=Host(`${CVAT_HOST:-localhost}`)
- traefik.http.routers.cvat-ui.entrypoints=веб
сети:
- cват
трафик:
изображение: трафик: v2.4
имя_контейнера: трафик
команда:
- "--providers.docker.exposedByDefault=false"
- "--providers.docker.network=cvat"
- "--entryPoints.web.address=:8999"
# Раскомментируйте, чтобы получить панель инструментов Traefik
# - "--entryPoints.dashboard.address=:8090"
# - "--api.dashboard=true"
# ярлыки:
# - traefik.enable=true
# - traefik.http.routers.dashboard.entrypoints=приборная панель
# - traefik.http.routers.dashboard.service=api@internal
# - traefik.http.routers.dashboard.rule=Host(`${CVAT_HOST:-localhost}`)
порты:
- 8999:8999
- 8090:8090
тома:
- /var/run/docker.sock:/var/run/docker.sock:ro
сети:
- cват
тома:
cvat_db:
cvat_data:
cvat_keys:
cvat_logs:
сети:
cват:
Подводя итог - цель состоит в том, чтобы подключиться к cvat_lcl база данных (на локальном хосте) в контейнере CVAT. В настоящее время CVAT работает на Linux 20.04 LTS. Заранее спасибо за помощь.