我对Docker有点新鲜
我有两个使用docker-compose运行的容器
一个是API,另一个是实际应用
我想使用Postgres官方图片添加一个新的数据库容器
要找到一个关于如何创建容器并使用预定义的sql文件(模式和数据)填充它的简单教程有点困难。
当我从Dockerfile中的“CMD /etc/init.d/postgresql start”开始时,我收到一条错误消息:“没有PostgreSQL集群存在;请参阅”man pg_createcluster“...(警告)。”
由于我需要花费太多时间才能完成工作,我想知道是否可以更好地获取Ubuntu图像并自行安装Postgres,因为只有一个关于如何使用图像的来源 - docker hub,以及我似乎不太了解它。
有关如何撰写和“配置”此图片的任何想法或简单步骤?
答案 0 :(得分:0)
如果您想用一些文件填充数据库,那么简单的方法是:
如何扩展此图片
如果您想在派生的图像中进行其他初始化 从这一个,添加一个或多个* .sql,* .sql.gz或* .sh脚本 /docker-entrypoint-initdb.d(必要时创建目录)。 入口点调用initdb后创建默认的postgres用户 和数据库,它将运行任何* .sql文件并提供任何* .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: .