在Dockerfile中重写FROM图像的ENV

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

如果我想覆盖我的子docker文件中的ACTIVEMQ_VERSION环境variables,我认为我将能够做到如下所示:

FROM cloudesire/activemq:latest MAINTAINER abc <abc@xyz.co.uk> ENV ACTIVEMQ_VERSION 5.9.1 ADD ./src/main/resources/* /opt/activemq/conf/ 

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

这是行不通的。 ACTIVEMQ_VERSION已被cloudesire/activemq:latest image build用于填充其图像层。 所有基于版本5.11.1的ActiveMQ安装文件已经在相应的目录中提取。

在你的Dockerfile你只能build立在那里已经build立的东西的顶部,并添加你的文件。 您自己的Dockerfile构build不会重新运行 Dockerfile描述的构build指令。

如果您需要基于版本5.9.1拥有自己的cloudesire/activemq映像,则需要克隆其Dockerfile ,然后调整其版本并在本地构build。 所以你可以基于你的其他Dockerfile