我有几个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吗?
感谢任何反馈。感谢
答案 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致敬,向我展示了光明。