Postgresql 尝试将sql转储导入postgres容器时生成docker映像时出错

Postgresql 尝试将sql转储导入postgres容器时生成docker映像时出错,postgresql,shell,docker,containers,dockerfile,Postgresql,Shell,Docker,Containers,Dockerfile,我正在为连接到同一docker网络中的postgres容器的应用程序创建Dockerfile。要填充数据库,我首先在Dockerfile中安装postgres客户端和所有依赖项,然后尝试执行sql转储,如下所示: 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 甚至这个: /bin/

我正在为连接到同一docker网络中的postgres容器的应用程序创建Dockerfile。要填充数据库,我首先在Dockerfile中安装postgres客户端和所有依赖项,然后尝试执行sql转储,如下所示:

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
甚至这个:

/bin/sh 
> psql -h $SQL_HOST -U $SQL_USER
postgres=# 
但是当我尝试连接到postgres(我猜是这样)时,我遇到了一个错误,docker在构建图像时就是这样做的:

/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变量在/bin/sh shell中不可用,但事实并非如此。我甚至在/bin/sh shell中ping了postgres并成功了。

很明显,docker在构建映像时无法识别其他容器的主机,只有执行
docker run--net
才能与其他容器通信

/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"?