在Docker容器中创build一个正在运行的Postgres服务

我对Docker有点新鲜。
我有两个使用docker-compose运行的容器。
一个是API,另一个是实际的应用程序。
我想使用Postgres官方图像添加一个新的数据库容器。
find一个关于如何创build容器的简单教程,并用一个预定义的sql文件(模式和数据)填充它是有点困难的。

当我从Dockerfile中的“CMD /etc/init.d/postgresql start”开始时,我得到一个错误:“没有PostgreSQL集群存在;请参阅”man pg_createcluster“…(警告)。

由于需要花费太多的时间才能完成任务,所以想知道是否可以更好地获取Ubuntu映像,并自行安装Postgres,因为只有一个源代码如何使用映像中心,好像不明白这点。

有关如何撰写和“configuration”这个图像的任何想法或简单的步骤?

如果你想用一些文件填充你的数据库,一个简单的方法是:

如何扩展这个图像

如果您希望在从此映像派生的映像中执行额外的初始化操作,请在/docker-entrypoint-initdb.d下添加一个或多个* .sql,* .sql.gz或* .sh脚本(必要时创build该目录)。 在入口点调用initdb创build默认的postgres用户和数据库之后,它将运行任何* .sql文件,并在该目录中find任何* .sh脚本,以在启动服务之前进行进一步的初始化。

Dockerfile

FROM postgres:alpine COPY init.sql /docker-entrypoint-initdb.d/init.sql 

泊坞窗,compose.yml

 version: '3' services: app: //your app definition postgres: build: .