postgresql - Docker Postgres容器中的.sql文件不会自动执行

标签 postgresql docker docker-compose

我有一个从.sql命令创建的pg_dump文件,我希望将其自动插入到Docker容器中的PostgreSQL实例中。我使用volume将.sql文件安装到docker-entrypoint-initdb.d目录中。我的Docker YML文件如下所示:

postgres: 
 environment: 
  - POSTGRES_USER=user
  - POSTGRES_PASSWORD=pw
  - POSTGRES_DB=db
 volumes:
  - ./out.sql:/docker-entrypoint-initdb.d/out.sql
 image: "postgres:9.6"

由于sql文件已装入docker-entrypoint-initdb.d中,因此我希望它在运行docker-compose -f myyml.yml up -d时自动运行并插入数据。它不执行。但是,当我在容器中运行bash时,我确实看到了.sql文件。另外,我可以使用类似于psql -U user -a -f out.sql的命令手动运行文件。为什么在运行docker-compose时它不会自动运行?

最佳答案

因此,经过大量的试验和错误,我意识到我需要删除所有图像和容器并重新启动。我运行了一个docker-compose myyml.yml down并重新运行,它似乎起作用了。

关于postgresql - Docker Postgres容器中的.sql文件不会自动执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48293519/

相关文章:

C: libpq-fe 尝试选择 bigint (int8)

sql - ruby on rails 参数比较日期和日期时间?

sql - 带有 where 子句的 Postgres 窗口函数

java - Quarkus 是针对 docker 容器运行时优化的还是仅针对 Kubernetes

php - 在docker compose中打开php.ini添加扩展

sql - 如何在别名字段上执行功能?

docker - 轻松访问 Windows Docker 容器上的文件

node.js - 使用 docker compose 将 nodejs 应用程序连接到 localstack s3

docker - 设置容器的时间戳以应用于 docker 日志

java - 如何使用 Fabric8 docker-maven-plugin 从 Dockerfile 构建 docker 镜像?