我需要在plpythonu
图片上创建postgres:10.3
扩展名。为此,我使用安装命令扩展了图像:
FROM postgres:10.3
RUN apt update && apt install -y postgresql-plpython-10
现在我需要运行psql
命令create extension plpythonu;
。但此时postgres服务器尚未运行,因此在运行docker build .
时出现错误:
Step 3/3 : RUN psql -c "create extension plpythonu;";
---> Running in 037066c120ea
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"?
我如何适应此命令?还有一种方法可以做到这一点,而无需从原始的postgres图像中复制整个docker-entrypoint.sh
吗?也许有一种方法可以在docker-compose中指定它?
答案 0 :(得分:0)
当步骤2结束时,Postgres数据库关闭,这就是为什么在Step-3数据库中没有运行。 您可以将步骤2和步骤3组合在一起。
RUN apt update && \
apt install -y postgresql-plpython-10 && \
psql -c "create extension plpythonu;"
这意味着&& (逻辑和)如果先前的命令成功,那么只执行下一个命令。