关于dockerfile:向docker镜像添加新的入口点

Add a new entrypoint to a docker image

最近,我们决定把我们的一个服务转移到码头集装箱。这项服务是另一家公司的产品,他们为我们提供了码头工人的形象。但是,我们需要在容器入口点中执行一些额外的配置步骤。

我尝试的第一件事是从基本图像创建Dockerfile,然后添加命令来执行额外的步骤,如:

1
2
From baseimage:tag
RUN chmod a+w /path/to/entrypoint_creates_this_file

但是,它失败了,因为这些额外的步骤必须在运行基本容器入口点之后运行。

有什么方法可以扩展基本图像的入口点吗?如果不是,正确的方法是什么?

谢谢


最后,在执行其他额外的配置步骤之前,我在新的entrypoint bash脚本中调用了原始的entrypointbash脚本。


你甚至不需要创建一个新的dockerfile。要修改entrypoint,只需使用如下命令运行图像:

docker run --entrypoint new-entry-point-cmd baseimage:tag


创建自定义入口点文件

->将此添加到图像

->将此指定为入口点文件

1
2
3
4
5
6
FROM image:base

COPY /path/to/my-entry-point.sh /my-entry-point.sh
// do sth here

ENTRYPOINT ["/my-entry-point.sh"]