我有几个 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 吗?
最佳答案
基本上我错过了在 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 向我展示了光明。
关于docker - 从 docker-compose.yml 文件将变量传递给 Dockerfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36738381/