之所以失败是因为Postgres在构建期间没有在容器中运行,而是仅在
CMD容器运行时才开始。
Docker映像的入口点脚本支持运行设置步骤-
/docker-entrypoint-initdb.d容器启动时将执行目录中的任何.sql或.sh文件。
因此,您可以通过将扩展程序设置放入SQL脚本中并将该脚本复制到init目录的映像中来完成此操作:
> cat hstore.sqlcreate extension hstore> cat DockerfileFROM postgres:9.5COPY hstore.sql /docker-entrypoint-initdb.d
构建该映像时,SQL脚本将在正确的位置执行,因此,每当从该映像运行容器时,它将安装扩展。



