无论如何设置Docker镜像入口点时,构建镜像或一些等效的?



我有一个Dockerfile,我用来构建相同的图像,但略有不同的目的。大多数时候,我希望它只是一个"环境"。没有一个特定的入口点,所以用户只需在Docker运行行指定:

docker run --rm -it --name ${CONTAINER} ${IMAGE} any_command parameters

但是对于某些应用程序,我希望用户下载容器并运行它,而无需设置命令。

docker build -t ${IMAGE}:demo (--entrypoint ./demo.sh) <== would be nice to have

是的,我可以有一个不同的Dockerfile,或者在构建期间添加一个入口点到基本的Dockerfile,或者其他各种各样的鼠标技巧,但这些都只是一件可能出错的事情,增加复杂性,并且是基本要求的变通方法。

任何想法?了构建?

DockerfileCMD指令设置默认命令。所以如果你的Dockerfile以

结尾
CMD default_command

则可以以多种方式运行图像

docker run "$IMAGE"
# runs default_command
docker run "$IMAGE" any_command parameters
# runs any_command instead

容器必须运行命令;你不能"只是运行一个容器"里面没有进程

您不希望在这里使用ENTRYPOINT,因为它的语法在命令行中明显难以使用。您的any_command将作为参数传递给入口点进程,而不是替换内置的默认值。

相关内容

  • 没有找到相关文章

最新更新