语法错误:dockerfile RUN语句中的多行bash命令

我有这个Dockerfile,我回应以下行:

echo $"RUN cat file | while read pkg \ do\ sudo apt-get install -qy $pkg \ done" >> Dockerfile 

现在,当docker执行这一行时,我得到以下错误:

/bin/sh: -c: line 1: syntax error: unexpected end of file The command '/bin/sh -c cat autobuild/buildenv_packages | while read pkg do sudo apt-get install -qy done' returned a non-zero code: 1

我知道有一些小的语法错误,但我无法弄清楚。 请注意, apt-get install语句中的$pkgvariables不在错误中。

任何援助将不胜感激!

代码中的反斜杠只会阻止string包含文字换行符; 他们不写入Dockerfile 。 之前没有换行符(或分号), while条件永远不会结束; 你只是有一个巨大的参数read命令列表。

 echo 'RUN while read pkg; do sudo apt-get install -qy "$pkg"; done < file' >> Dockerfile