我创建了一个看起来像这样的
的Docker文件db:
image: postgres:10.3
ports:
- "5432:5432"
environment:
POSTGRES_DB: test
POSTGRES_USER: test
POSTGRES_PASSWORD: changeme
restart: always
volumes:
- ./srv/postgres:/var/lib/postgresql/data
- ./init/:/docker-entrypoint-initdb.d/
我在./init路径中有一个sql脚本,它有sql命令来创建数据库和用户。我看到在postgres容器中创建的sql文件但不知何故它没有执行。我已经关注了docker hub上的文档。我不确定这里有什么问题?
答案 0 :(得分:0)
我也经历过这一点。问题是只有在数据库尚未初始化的情况下才会运行/docker-entrypoint-initdb.d/
内的脚本。
如果您停止容器,请删除./srv/postgres/
的内容,然后重新创建容器,*.sql
内的./init
脚本将会运行。
但是这样做会导致数据丢失。
有关详情,请参阅here。