如果设置了环境变量,请说ENV ADDRESSEE=world
,然后在连接到固定字符串的入口点脚本中使用它,例如:
ENTRYPOINT ["./greeting", "--message", "Hello, world!"]
与world
作为环境varible的价值,我该怎么办呢?我尝试使用,"Hello, $ADDRESSEE"
但这似乎不起作用,因为它$ADDRESSEE
确实是正确的。
您正在使用ENTRYPOINT 的 exec形式 。与 shell表单 不同, exec表单
不会调用命令shell。这意味着正常的外壳处理不会发生。例如,ENTRYPOINT [ "echo", "$HOME" ]
将不会在$
HOME上进行变量替换。如果要进行shell处理,则可以使用 shell形式 或直接执行shell,例如:ENTRYPOINT [ "sh", "-c", "echo $HOME" ]
。
当使用exec表单并直接执行shell时(例如在shell表单中),是由shell进行环境变量扩展,而不是docker。(来自Dockerfile参考)
在你的情况下,我会使用 外壳形式
ENTRYPOINT ./greeting --message "Hello, $ADDRESSEE\!"
我希望能够在docker-compose.yml中使用env变量,这些变量的值是在时传入的。这就是例子。 我今天用基本的docker run命令来完成这个任务,它被包装在我自己的脚本中。有没有一种方法可以用compose来实现它,而不需要任何这样的bash包装器?
我希望能够在docker compose中使用env变量。yml,值在docker compose up时传入。这就是一个例子。 我今天用基本的docker run命令来做这件事,它包含在我自己的脚本中。有没有一种方法可以在没有任何bash包装器的情况下用compose实现它?
问题内容: 我希望能够在docker-compose.yml中使用env变量,并在docker-compose时传入值。这就是例子。我今天使用基本的docker run命令来执行此操作,该命令包装在我自己的脚本中。没有任何这样的bash包装器,有没有办法通过compose实现它? 问题答案: 创建一个,这是您的with环境变量。 假设您的环境变量在文件“ env.sh”中 将以下代码放入sh文件中
卷值不允许附加属性('${VOLUME_NAME}‘意外) 任何帮助都将不胜感激。
问题内容: 是否可以重用在多个容器之间共享的环境变量以避免重复,如本示例所示: 问题答案: 该选项可能是好的,但它不支持在撰写文件。其他走的方式是: 扩展名字段(撰写文件3.4+) 如果可以使用3.4+组成文件,则扩展名字段可能是最佳选择: docker-compose.yml env_file指令 docker-compose.yml variables.env * 项目根目录中的 *.env
当我用它以以下错误停止: 我不是舒尔,但似乎。env文件不支持变量的使用。