使用postgres启动容器时不会创建数据库 docker-compose.yml 版本:“3.5” 服务: 博士后: 容器名称:postgres\u容器 图片:博士后:11.7 环境: POSTGRES_用户:${POSTGRES_用户:-POSTGRES} POSTGRES_密码:${POSTGRES_密码:-root} PGDATA:/data/postgres #./init.sql(用于unix系统) #//docker/init.sql:/docker-entrypoint-initdb.d/init.sql-适用于Windows 卷数: -postgres:/data/postgres -//docker/init.sql:/docker-entrypoint-initdb.d/init.sql 端口: - "5432:5432" 网络: -博士后 重新启动:除非停止 pgadmin: 容器名称:pgadmin\u容器 图片:dpage/pgadmin4 环境: PGADMIN_DEFAULT_电子邮件:${PGADMIN_DEFAULT_电子邮件:-pgadmin4@pgadmin.org} PGADMIN_默认_密码:${PGADMIN_默认_密码:-admin} 卷数: -pgadmin:/root/.pgadmin 端口: -“${PGADMIN_端口:-5050}:80” 网络: -博士后 取决于: -博士后 重新启动:除非停止 网络: 博士后: 司机:驾驶台 卷数: 博士后: pgadmin:

使用postgres启动容器时不会创建数据库 docker-compose.yml 版本:“3.5” 服务: 博士后: 容器名称:postgres\u容器 图片:博士后:11.7 环境: POSTGRES_用户:${POSTGRES_用户:-POSTGRES} POSTGRES_密码:${POSTGRES_密码:-root} PGDATA:/data/postgres #./init.sql(用于unix系统) #//docker/init.sql:/docker-entrypoint-initdb.d/init.sql-适用于Windows 卷数: -postgres:/data/postgres -//docker/init.sql:/docker-entrypoint-initdb.d/init.sql 端口: - "5432:5432" 网络: -博士后 重新启动:除非停止 pgadmin: 容器名称:pgadmin\u容器 图片:dpage/pgadmin4 环境: PGADMIN_DEFAULT_电子邮件:${PGADMIN_DEFAULT_电子邮件:-pgadmin4@pgadmin.org} PGADMIN_默认_密码:${PGADMIN_默认_密码:-admin} 卷数: -pgadmin:/root/.pgadmin 端口: -“${PGADMIN_端口:-5050}:80” 网络: -博士后 取决于: -博士后 重新启动:除非停止 网络: 博士后: 司机:驾驶台 卷数: 博士后: pgadmin:,docker,docker-compose,Docker,Docker Compose,提升容器时,必须运行脚本 init.sql 创建数据库示例; 创建数据库测试; 但没有创建任何数据库。我必须通过控制台手动创建它们 谁知道为什么会出现这种情况以及如何解决?(该图显示脚本安装在容器中) 解决方案 我停止并删除了所有的容器 然后删除了卷 之后,我又开始了docker compose.yml 创建了数据库 可能是第一次启动失败,创建了卷,当我更正文件时,数据库创建命令的第二次启动没有执行,因为已经为当前容器创建了卷。感谢您提供的提示。从更新中可以看出,以前启动过数据库。一旦

提升容器时,必须运行脚本

  • init.sql
创建数据库示例;
创建数据库测试;
但没有创建任何数据库。我必须通过控制台手动创建它们

谁知道为什么会出现这种情况以及如何解决?(该图显示脚本安装在容器中)

解决方案

  • 我停止并删除了所有的容器
  • 然后删除了卷
  • 之后,我又开始了docker compose.yml
  • 创建了数据库

可能是第一次启动失败,创建了卷,当我更正文件时,数据库创建命令的第二次启动没有执行,因为已经为当前容器创建了卷。感谢您提供的提示。

从更新中可以看出,以前启动过数据库。一旦发生这种情况,卷将被初始化。一旦卷有了数据


解决方案是停止数据库,删除包含坏数据库数据的卷,然后重新启动数据库。

docker compose.yml文件是否字面上说是
//docker/…
,带有两个斜杠;您的意思是相对于当前目录的
/docker/…
?您能否提供一个示例,并详细描述生成附加到此处的映像的过程?请注意,一旦数据库初始化一次并将文件写入卷,它将不会再次尝试初始化。您需要在init脚本的测试之间删除卷。