我有一个docker-compose.yml
这样的文件:
version : '2'
services :
s1 :
build : .
environment :
HELLO : world
这样Dockerfile
:
FROM ubuntu
RUN /bin/bash -c 'echo "$HELLO" > /txt'
如何使用包含文字txt
的{{1}}文件的图片结束?
现在,当我测试给定的示例时,文件为空!
[UPDATE]
如果我将环境变量放在world
中,它可以正常运行,这让我认为这是一个Dockerfile
问题!
docker-compose
答案 0 :(得分:1)
在构建时无法访问docker-compose.yml中定义的环境。
要实现这一点,您必须使用args
字段的build
选项(仅支持docker-compose的版本2文件格式)。它将允许您添加构建参数。
https://docs.docker.com/compose/compose-file/#args
在下面找到如何使用它:
<强>搬运工-compose.yml 强>
services :
s1 :
build :
context: .
args:
HELLO: world
另请注意,您必须在 Dockerfile 中定义一个具有相同键名的ARG
标记。
FROM ubuntu
ARG HELLO
RUN echo "$HELLO" > /txt