docker的问题组成初始数据库设置一次

时间:2018-06-05 14:58:35

标签: docker docker-compose

我创建了一个看起来像这样的

的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上的文档。我不确定这里有什么问题?

1 个答案:

答案 0 :(得分:0)

我也经历过这一点。问题是只有在数据库尚未初始化的情况下才会运行/docker-entrypoint-initdb.d/内的脚本。

如果您停止容器,请删除./srv/postgres/的内容,然后重新创建容器,*.sql内的./init脚本将会运行。

但是这样做会导致数据丢失。

有关详情,请参阅here