gpt4 book ai didi

docker - Docker:如何在数据库镜像中保留入口点

转载 作者:行者123 更新时间:2023-12-02 20:04:46 27 4
gpt4 key购买 nike

我有一个名为base-image-A的基本图像

FROM postgres
ADD /scripts /docker-entrypoint-initdb.d

在脚本中是一个脚本: custom.sql我建立图像并执行。有用。

现在,我创建一个从 base-image-A派生的图像:
FROM base-image-A
ADD ./different-scripts/ /docker-entrypoint-initdb.d

这也很好。执行原始脚本和新脚本。
但是当我尝试挂载时会发生问题
docker run -d ... -v ./different-scripts/ /docker-entrypoint-initdb.d/ base-image-A

现在,仅执行新脚本,而不执行来自base-image-a(custom.sql)的原始脚本。它可能已被安装覆盖。有没有办法使这项工作和脚本保持不变?

最佳答案

根据@ sp0gg注释,一种解决方案是将different-scripts挂载到其他目录(例如scripts),然后将该目录中的脚本链接到/docker-entrypoint-initdb.d。类似于以下内容:

docker run \
--mount src=different-scripts,target=/scripts,type=bind \
base-image-A /bin/bash -c "ln -s /scripts/* /docker-entrypoint-initdb.d; \
/docker-entrypoint.sh postgres"

它应该在初始化容器之前链接文件。

关于docker - Docker:如何在数据库镜像中保留入口点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50718926/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com