docker - Docker:如何在数据库映像中保留入口点
问题描述
我有一个名为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) 的原始脚本。它可能被安装覆盖。有没有办法使这项工作和脚本持久化?
解决方案
问题是您通过在它们之上安装新脚本目录来隐藏原始脚本,其中:
-v ./different-scripts/:/docker-entrypoint-initdb.d/
正如@sp0gg 所说,你可以试试这个(我还没有测试过):
-v ./different-scripts:/docker-entrypoint-initdb.d/different-scripts/
不同之处在于这会将新目录安装在旧目录下,而不是在其顶部。但是,--mount
正如@b0gsub 的回答中所使用的那样,如今该变体更可取。
推荐阅读
- excel - 在文本框中输入特定文本并将 +1 添加到另一个单元格
- spartacus-storefront - 商品数据未更新
- firebase - Firebase:功能:上传错误:服务器错误。客户端网络套接字在建立安全 TLS 连接之前断开
- web - 建议对具有访问控制的选项卡进行 UX 改进
- php - Mailgun 电子邮件到处都被拒绝,但在 Gmail 上接收
- biztalk - BizTalk json 编码器未使用正确的类型
- python - 使python中的线程在到达函数末尾时自动加入
- php - 无法打开流:没有这样的文件或目录警告:require_once 致命错误:require_once():
- logic - 为什么 AND、OR 会按预期工作,但 XOR 会显示错误?
- c++ - C++ 错误:字段必须具有恒定大小