如何在不知道原始入口点的情况下运行Docker pre entrypoint命令?

如何在不知道原始入口点的情况下运行Docker pre entrypoint命令?,docker,kubernetes,Docker,Kubernetes,我找不到这个特定用例的明确答案 我有一个任意的docker映像,比如说postgres:latest,它有一个启动postgres服务器的复杂命令的“烘焙”入口点 我想做的是运行一个命令,比如说apt install ca certificates&&wget'MyTimestampedCAConfig',然后调用原始(未知)入口点来启动数据库 我在Kubernetes中这样做的上下文是通过在yml中提供一个自定义的命令:docker run--入口点或多或少是等效的 在这种情况下,我可以通过d

我找不到这个特定用例的明确答案

我有一个任意的docker映像,比如说
postgres:latest
,它有一个启动postgres服务器的复杂命令的“烘焙”入口点

我想做的是运行一个命令,比如说
apt install ca certificates&&wget'MyTimestampedCAConfig'
,然后调用原始(未知)入口点来启动数据库

我在Kubernetes中这样做的上下文是通过在yml中提供一个自定义的
命令:
<代码>docker run--入口点或多或少是等效的

在这种情况下,我可以通过
docker history
手动找到
postgres:latest
容器的原始命令,并将其硬编码到kube yml中。但这在一个有数百个自定义容器的环境中不起作用,而且端点会周期性地、非常随机地更改

如何在自己的命令之后动态调用原始入口点

如何在自己的命令之后动态调用原始入口点

你不能。没有办法说“在自定义图像中的入口点脚本之后调用基本图像的入口点脚本”。唯一的解决方案是使用例如docker inspect确定原始入口点,然后从您自己的入口点脚本显式调用该入口点


您真的需要为您的用例覆盖入口点脚本吗?您给出的示例(安装新软件包)似乎最好的解决方法是基于
postgres
映像创建一个新映像,然后向Dockerfile添加必要的
RUN apt install…
命令。

有效的方法是创建一个自定义Dockerfile,例如:FROM postgres:latest RUN您需要在映像中自定义的任何内容。生成dockerfile并使用自定义生成映像。如果您没有覆盖原始入口点,它仍将被使用。遗憾的是,这是一个构建时解决方案。我需要一个运行时解决方案。我不知道在构建时额外的命令是什么,两个阶段之间可能有六个月的时间。。。一个示例用例是在entrypoint之前下载一个版本化的配置文件。杂耍pvc代价高昂。