一尘不染

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

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文件

version: '2'

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

我有一个要在其中使用SOMETHING的dockerfile。

# Dockerfile
RUN echo $SOMETHING

那不行 SOMETHING未传递到dockerfile。

我这样做有误还是不是预期的用途?

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


阅读 1200

收藏
2020-06-17

共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给我看光。

2020-06-17