栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Dockerfile:将RUN指令输出到变量中

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Dockerfile:将RUN指令输出到变量中

您不能保存变量供以后在其他

Dockerfile
命令中使用(如果您打算这样做)。这是因为每种
RUN
情况都发生在新的外壳中。

但是,如果只想捕获输出,则

ls
应该可以在一个
RUN
复合命令中完成它。例如:

RUN file="$(ls -1 /tmp/dir)" && echo $file

或者只是使用subshel​​l内联:

RUN echo $(ls -1 /tmp/dir)

希望这有助于您的理解。如果您要解决实际的错误或问题,我可以在此范围内进行扩展,而不是假设的答案。

一个完整的例子

Dockerfile
证明了这一点:

FROM alpine:3.7RUN mkdir -p /tmp/dir && touch /tmp/dir/file1 /tmp//dir/file2RUN file="$(ls -1 /tmp/dir)" && echo $fileRUN echo $(ls -1 /tmp/dir)

当建立你应该看到步骤3和4输出的变量(它包含的列表

file1
file2
在步骤2中创建):

$ docker build --no-cache -t test .Sending build context to Docker daemon  2.048kBStep 1/4 : FROM alpine:3.7 ---> 3fd9065eaf02Step 2/4 : RUN mkdir -p /tmp/dir && touch /tmp/dir/file1 /tmp//dir/file2 ---> Running in abb2fe683e82Removing intermediate container abb2fe683e82 ---> 2f6dfca9385cStep 3/4 : RUN file="$(ls -1 /tmp/dir)" && echo $file ---> Running in 060a285e3d8afile1 file2Removing intermediate container 060a285e3d8a ---> 2e4cc2873b8cStep 4/4 : RUN echo $(ls -1 /tmp/dir) ---> Running in 528fc5d6c721file1 file2Removing intermediate container 528fc5d6c721 ---> 1be7c54e1f29Successfully built 1be7c54e1f29Successfully tagged test:latest


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/403461.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号