Я создаю файл Docker для приложения, которое подключается к контейнеру postgres внутри той же сети докеров. Для заполнения базы данных, внутри Dockerfile я сначала установить клиент Postgres и все зависимости, а затем попытаться выполнить SQL дамп, как это:Ошибка при создании изображения докеров при попытке импорта sql-дампа в контейнер postgres
RUN apt-get install python python-dev libpq-dev postgresql-client
RUN psql -h $SQL_HOST -U $SQL_USER -W $SQL_DB < some_dump.sql
Я получаю эту ошибку:
The command '/bin/sh -c psql -h $SQL_HOST -U $SQL_USER -W $SQL_DB < some_dump.sql' returned a non-zero code: 2
Переменная $ SQL_HOST имеет имя контейнера докера, и я могу ping postgres без проблем.
Когда я вручную настроить контейнер, я могу выполнить без проблем следующее:
psql -h $SQL_HOST -U $SQL_USER
postgres=#
Или даже так:
/bin/sh
> psql -h $SQL_HOST -U $SQL_USER
postgres=#
Но я получаю сообщение об ошибке при попытке подключиться к Postgres (я предполагаю, что) способ докер делает при создании образа:
/bin/sh -c psql -h $SQL_HOST -U $SQL_USER
сообщение об ошибке:
psql: 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"?
Любые идеи, почему я получаю эту ошибку? Мои догадки состояли в том, что env vars не были доступны в оболочке/bin/sh, но это не тот случай. Я даже pinged postgres внутри оболочки/bin/sh и преуспел.