【发布时间】:2020-06-02 15:59:55
【问题描述】:
我正在尝试使用 docker 将数据插入到 postgres 中。
我的代码中有一个名为 data 的文件夹,其中包含 insert 命令和一个名为 init.sql 的文件。
我想将文件夹数据中 init.sql 中的数据插入到 docker 中的表中。
version: '3.1'
services:
postgres:
image: postgres:11.6-alpine
restart: always
ports:
- "5432:5432"
environment:
POSTGRES_PORT: 5432
volumes:
- ./tables:/docker-entrypoint-initdb.d/
- ./data:/var/lib/postgresql/data
volumes:
data: {}
我正在尝试这个,但我得到了错误:
initdb:目录“/var/lib/postgresql/data”存在但不为空
我认为我没有使用正确的用例,我是 docker compose 的新手。
但是有什么办法可以让我的用例得到满足?
【问题讨论】:
-
Mhm... 再看看这个,好吧,你想要达到的目标不能用
docker-entrypoint-initdb.d执行。这种行为(在启动时运行 sql 脚本)仅在容器第一次启动时才会发生 -
如果你想这样做,那么你必须覆盖 compose 文件中的
entrypoint来实现。 -
好的,谢谢 可能需要做:在卷中:/data:/docker-entrypoint-initdb.d/
标签: postgresql docker docker-compose dockerfile