docker - 在 Dockerfile 中覆盖 FROM 镜像的 ENV

标签 docker overriding 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 新手,显然误解了一些东西。请有人解释一下为什么这不起作用,以及我如何/是否可以通过其他方式实现它?

最佳答案

那是行不通的。 cloudesire/activemq:latest 镜像构建已使用 ACTIVEMQ_VERSION 来填充其镜像层。所有基于5.11.1版本的ActiveMQ安装文件已解压到相应目录中。

在您的 Dockerfile 中,您只能在已构建的基础上进行构建并添加您的文件。您自己的 Dockerfile 构建将不会重新运行Dockerfile 中描述的构建指令。

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

关于docker - 在 Dockerfile 中覆盖 FROM 镜像的 ENV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31834100/

相关文章:

Scala用var覆盖非抽象def

json - 如何使用docker-compose将json导入mongo?

c# - 如何调用 == 运算符来调用 child 的实现?

docker - 在 tomcat docker 容器上提供 war 文件

javascript - 覆盖 Jquery 的功能

docker - 在Docker-Compose中控制启动顺序

docker - 如何知道docker CMD何时完成?

docker 纯粹从命令行构建

docker - AWS服务发现,nginx和节点问题

docker - Docker 容器如何判断其内存是否有限?