Docker-扩展父级的ENTRYPOINT

sup*_*r.t 5 postgresql docker

我有一个基于官方postgres图像的自定义图像,并且我想扩展父图像的入口点,以便如果每次容器启动时尚不存在新用户和数据库,它将创建新用户和数据库。可能吗?就像我的映像将​​执行标准入口点加上我自己的Shell脚本的所有命令一样。

我知道有关将自己的脚本放入/docker-entrypoint-initdb.d目录的信息,但似乎只有在首次创建该卷时它们才会执行。

Tar*_*ani 6

您需要做的是如下所示

setup_user.sh

sleep 10
echo "execute commands to setup user"
Run Code Online (Sandbox Code Playgroud)

setup.sh

sh setup_user.sh &
./docker-entrypoint.sh postgres
Run Code Online (Sandbox Code Playgroud)

并且您的图片应使用ENTRYPOINT作为

ENTRYPOINT ["/setup.sh"]
Run Code Online (Sandbox Code Playgroud)

您需要在后台启动设置脚本,并让origin entryscript起作用以启动数据库。