加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

RUN echo命令的Docker参数

发布时间:2020-12-16 03:34:52 所属栏目:安全 来源:网络整理
导读:作为Dockerfile的一部分,我试图修改一个文本文件(ssh_config),以包含用户(作为ARG)在构建时传递给docker容器的变量. 在我的Dockerfile中,我有(这不是整个文件): ARG key_nameRUN echo 'Host geoservernUser usernHostName 38.191.191.111nIdentityFil

作为Dockerfile的一部分,我试图修改一个文本文件(ssh_config),以包含用户(作为ARG)在构建时传递给docker容器的变量.

在我的Dockerfile中,我有(这不是整个文件):

ARG key_name
RUN echo 'Host geoservern
User usern
HostName 38.191.191.111n
IdentityFile /root/$key_name' >> /etc/ssh/ssh_config

这会收集参数key_name,然后将一些文本附加到ssh_config文本文件中.

这运行如下:

docker build --build-arg key_name=GC -t pyramid .

当我检查已写入的内容时,key_name变量尚未被解析,而是被写为文本(字面意思是$key_name).显然我希望它被传递给ARG的变量所取代.

我尝试使用${key_file}而不是$key_file,我只是在文本文件中获得相同的文本,但包括花括号.

所以我的问题是,如何在RUN echo语句中正确使用ARG变量?

最佳答案
第一:确保你的ARG来自你的.见:https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact

第二:As you can see here,变量不会在”内解释,所以请改用“”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读