来自以下图片: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的新手并且明显误解了一些东西。请有人解释为什么这不起作用,以及如何/如果我能以另一种方式实现它?
答案 0 :(得分:5)
那不会奏效。 ACTIVEMQ_VERSION
图像构建已使用cloudesire/activemq:latest
来填充其图像图层。基于版本5.11.1
的所有ActiveMQ安装文件已在相应的目录中提取。
在Dockerfile
中,您只能在已经构建的内容之上构建并添加文件。您自己的Dockerfile
版本不会重新运行 Dockerfile
中描述的构建说明。
如果您需要拥有基于版本5.9.1的自己的cloudesire/activemq
图像,则需要克隆其Dockerfile
,在那里调整版本并在本地构建它。因此,您可以将其他Dockerfile
作为其基础。