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 上的文档。我不确定这里有什么问题?
解决方案
我也经历过这种情况。问题是/docker-entrypoint-initdb.d/
只有在数据库尚未初始化时才会运行其中的脚本。
如果您停止容器,请删除其中的内容,./srv/postgres/
然后重新创建您的*.sql
脚本./init
将在其中运行的容器。
但是,这样做会导致您的数据丢失。
有关更多信息,请参见此处。
推荐阅读
- android - 在我移动时绘制一条折线
- sapui5 - Ui5 的 Component.js 中带有 2 个路径(颜色)的图标
- amazon-web-services - 如何为生产设置 AWS RDS 实例,以便我可以定期从我的个人计算机中读取自定义数据
- python - 在 read() 之前或之后删除空行
- ios - 从阴影按钮中删除标题阴影
- python - The if-statement is triggered no matter the input
- android - 没有与@ContributesAndroidInjector 绑定的注入器工厂
- php - 是否有用于 php 的“Textmerge”功能?
- microsoft-graph-api - 如何使用 ADAL.NET 和 v1 与 Microsoft Graph API 进行交互
- javascript - 如何根据角度组件生命周期进行测试