在Dockerfile中运行RUN命令
我有一个像这样的行:
RUN for i in `xyz`; do echo "$i"; done
打算打印这三个项目的每一个
但是它会引发/bin/sh: 1: x: not found
任何想法我做错了什么?
看起来你正在使用反引号。 反引号中的内容被执行,反引号中的文本被结果返回的内容replace。
尝试使用单引号或双引号而不是反引号 。
尝试摆脱这样的反响:
RUN for i in xyz; do echo "$i"; done
我其实会提出一个替代scheme。
在docker文件中取代LOOP,我们可以退后一步了吗?
在独立的bash脚本中实现循环;
这意味着你将有一个loop.sh如下:
#!/bin/bash
for i in $(seq 1 5); do echo "$i"; done
在你的Dockerfile中,只需要:
RUN ./loop.sh
而不是使用Run
使用CMD
,那么你可以像使用shell命令一样执行循环。
看看这个相关的问题作为参考: 在Docker cmd中的recursionwhile循环