Docker & PostgreSQL - 修改后的 PostgreSQL 镜像不以 Docker run 命令开头



我想构建一个PostgreSQL镜像,它只包含一些额外的.sql文件,以便在启动时执行

Dockerfile:

FROM postgres:11.9-alpine
USER postgres
WORKDIR /
COPY ddl/*.sql /docker-entrypoint-initdb.d/

然后我构建图像:

docker build -t my-postgres:1.0.0 -f Dockerfile .

并运行集装箱

docker run -d --name my-database 
-e POSTGRES_PASSWORD=abc123 
-p 5432:5432 
my-postgres:1.0.0

它的输出是容器id

33ed596792a80fc08f37c7c0ab16f8827191726b8e07d68ce03b2b5736a6fa4e

检查正在运行的容器没有返回任何结果:

Docker container ls

但如果我明确地启动它,它就可以

docker start my-postgres

在原始的PostgreSQL映像中,Docker run命令已经启动了数据库。为什么在建立了自己的形象之后却没有呢?

事实证明,其中一个复制的.sql文件无法执行,根据此文档,它使入口点脚本退出。修复SQL解决了问题,容器通过Docker运行正常启动

最新更新