在Dockerfile中覆盖FROM图像的ENV

Jam*_*mes 2 overriding env docker dockerfile

从下图中:https://registry.hub.docker.com/u/cloudesire/activemq/dockerfile/

如果我想覆盖我的子docker文件中的ACTIVEMQ_VERSION环境变量,我假设我可以执行以下操作:

FROM cloudesire/activemq:latest
MAINTAINER abc <abc@xyz.co.uk>
ENV ACTIVEMQ_VERSION 5.9.1
ADD ./src/main/resources/* /opt/activemq/conf/
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不起作用.不可否认,我是Docker的新手并且明显误解了一些东西.请有人解释为什么这不起作用,以及如何/如果我能以另一种方式实现它?

h3n*_*rik 6

那不行.在ACTIVEMQ_VERSION已经使用的cloudesire/activemq:latest图像生成来填充它的图像层.基于版本的所有ActiveMQ安装文件5.11.1都已在相应的目录中提取.

在你的工作中,Dockerfile你只能建立在那里已经构建的东西并添加你的文件.您自己的Dockerfile构建不会重新运行其中描述的构建指令Dockerfile.

如果您需要拥有cloudesire/activemq基于版本5.9.1的自己的图像,则需要克隆它们Dockerfile,在那里调整版本并在本地构建它.所以你可以把你的另一个Dockerfile基于它.