Как использовать второй docker экземпляр? - PullRequest
0 голосов
/ 30 января 2020

Предполагая, что команда для второго docker экземпляра имеет значение

docker run --rm --net=host -p 3002:3002 -e SERVER_PORT="3002" \
 -e PGRST_DB_URI="postgres://postgres@localhost/prod2"    \
 -e PGRST_DB_ANON_ROLE="postgres" postgrest/postgrest

, это приводит к

WARNING: Published ports are discarded when using host network mode
Attempting to connect to the database...
Listening on port 3000
postgrest: Network.Socket.bind: resource busy (Address already in use)

Это не имеет смысла, поскольку использование -p 3002:3002 -e SERVER_PORT="3002" ... Возможно ли это бежать? Где ошибка конфигурации?

ПРИМЕЧАНИЕ: первый docker был реализован docker run -d --net=host -p 3000:3000 -e PGRST_DB_URI="postgres://postgres@localhost/prod0" -e PGRST_DB_ANON_ROLE="postgres" postgrest/postgrest


См. Также https://github.com/PostgREST/postgrest/issues/1442

1 Ответ

1 голос
/ 30 января 2020

Я думаю, что вы просто неправильно написали имя переменной среды порта сервера, во второй команде вы пропускаете PGRST с начала.

Используйте -e PGRST_SERVER_PORT=3002 вместо -e SERVER_PORT.

Вы получаете предупреждение, потому что -p игнорируется при использовании сетевого хоста, но, похоже, это не проблема. В любом случае, вы можете удалить настройки -p из команд и использовать просто --net=host.

...