【问题标题】:Pass a variable to a Dockerfile from a docker-compose.yml file从 docker-compose.yml 文件将变量传递给 Dockerfile
【发布时间】:2016-04-20 08:44:08
【问题描述】:

我有几个 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 文件

version: '2'

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

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

# Dockerfile
RUN echo $SOMETHING

这行不通。有些东西没有传递给 dockerfile。

这是我做错了还是这不是预期的用途?

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

【问题讨论】:

标签: docker


【解决方案1】:

基本上我错过了在 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 向我展示了光明。

【讨论】:

    猜你喜欢
    • 2018-08-14
    • 2019-05-27
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多