将变量从docker-compose.yml文件传递给Dockerfile

时间:2016-04-20 08:44:09

标签: docker

我有几个docker-compose.yml文件,我想使用相同的Dockerfile,稍有不同。所以我想将一个参数传递给该Dockerfile,以便我可以根据变量设置的值来做一些稍微不同的事情。

到目前为止我尝试了什么

docker-compose-A.yml文件

version: '2'

services:
  django:
    build:
      context: .
      dockerfile: ./docker/Dockerfile
      args:
        - SOMETHING=foo

docker-compose-B.yml file

version: '2'

services:
  django:
    build:
      context: .
      dockerfile: ./docker/Dockerfile
      args:
        - SOMETHING=bar

我有一个dockerfile我想使用SOMETHING。例如

# Dockerfile
RUN echo $SOMETHING

这不起作用。 SOMETHING未传递给dockerfile。

我这样做不正确还是这不是预期用途?

还有其他方法可以将一个变量从docker-compose.yml文件传递给Dockerfile吗?

感谢任何反馈。感谢

1 个答案:

答案 0 :(得分:29)

基本上我错过了在Dockerfile中声明arg。

# docker-compose.yml file

version: '2'

services:
  django:
    build:
      context: .
      dockerfile: ./docker/Dockerfile
      args:
        - SOMETHING=foo

# Dockerfile
ARG SOMETHING
RUN echo $SOMETHING


向@Lauri致敬,向我展示了光明。