作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个关于 docker 和 postgres 的问题。每次 docker 启动并想要导入给定的转储时,我都会设置一个新的 postgres 数据库。
我的问题是这样的,但答案对我来说还不够:Docker postgres does not run init file in docker-entrypoint-initdb.d
Docker 编写:
postgres:
environment:
- POSTGRES_USER=****
- POSTGRES_PASSWORD=****
- POSTGRES_DB=****
build:
context: .
dockerfile: dockerfile-postgres
我的 Dockerfile:(我已经用 .sh 结尾的脚本尝试过)
FROM postgres
ADD dump.sql /docker-entrypoint-initdb.d/
根据https://hub.docker.com/_/postgres/必须使用 dump.sql 导入数据库。
使用 docker 启动应用程序只会给出:
postgres_1 | LOG: invalid record length at 0/1708600
postgres_1 | LOG: redo is not required
postgres_1 | LOG: MultiXact member wraparound protections are now enabled
postgres_1 | LOG: database system is ready to accept connections
postgres_1 | LOG: autovacuum launcher started
除了我测试了我的数据库是否已经导入之外,我的数据库中没有表。我在做什么错(文件在目标系统上是读取和可执行的)?用psql导入没问题,所以我的dump是正确的。
我希望你能帮助我,我想提前感谢你。
最佳答案
好的,我找到了窍门,我必须执行“docker-compose rm”才能执行此文件夹中的脚本和 sql 文件。一旦构建并且未删除,init 文件夹将被忽略。
更新我又遇到了这个问题,这次删除 docker 创建的图像解决了这个问题。
关于postgresql - Docker-Compose Postgresql 导入转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37834435/
我正在为我的应用程序使用 Tank-Auth。我唯一的问题是激活和重置帐户密码。 用于登录、注册、注销;我对这些代码没有问题; $route['login'] = "/auth/login"; $ro
我是一名优秀的程序员,十分优秀!