在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
。