在Dockerfile中覆盖FROM image的ENV

时间:2015-08-05 13:34:06

标签: docker override dockerfile env

来自以下图片: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/

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

1 个答案:

答案 0 :(得分:5)

那不会奏效。 ACTIVEMQ_VERSION图像构建已使用cloudesire/activemq:latest来填充其图像图层。基于版本5.11.1的所有ActiveMQ安装文件已在相应的目录中提取。

Dockerfile中,您只能在已经构建的内容之上构建并添加文件。您自己的Dockerfile版本不会重新运行 Dockerfile中描述的构建说明。

如果您需要拥有基于版本5.9.1的自己的cloudesire/activemq图像,则需要克隆其Dockerfile,在那里调整版本并在本地构建它。因此,您可以将其他Dockerfile作为其基础。