一尘不染

Dockerfile和dev / test / prod环境

docker

我想创建一个Dockerfile,它将能够构建三个不同的映像(此刻一个)。这些映像仅在配置文件中有所不同。

我正在尝试:

  • 创建三个不同的Docker文件(不起作用,因为dockerfile需要命名为Dockerfile并且位于上下文根目录中
  • 寻找一种将参数传递给docker build命令的方法-找不到
  • 使用ONBUILD命令-我创建了一个主文件和三个特定的文件,它们将特定的conf文件复制到映像中的同一目录(由于与第一点相同的原因,该文件不起作用)
  • 从stdin传递docker文件-它不起作用,因为那时没有上下文(所以我不能使用ADD / COPY命令)

我必须说我没有想法:/您如何处理这种情况。我认为这应该是一个普遍的问题。


阅读 627

收藏
2020-06-17

共1个答案

一尘不染

为什么不在Dockerfile中复制所有3个配置文件,然后docker run -e config=file1(或file2或file3)并使用config环境变量的值来获取所需的配置文件。请查看doc
http://docs.docker.com/reference/commandline / cli
/#run

您还可以使用--env-file=[] Read in a line delimited file of environment variables的的docker run命令。

您可以检查环境变量是否可用于 docker run -it -e mytag=abc123 ubuntu:latest env | grep mytag演出 mytag=abc123

2020-06-17