了解 Dockerfile 中curl命令的变量占位符

了解 Dockerfile 中curl命令的变量占位符

我正在学习 Dockerfile,之前没有使用过curl。

我试图理解第 26 行这个 Dockerfile

&& bash -c 'curl "https://nodejs.org/dist/$(<.node_version.txt)/node-$(<.node_version.txt)-linux-x64.tar.gz" > /home/meteorapp/meteorapp/build/required-node-linux-x64.tar.gz' \

是否$(<.node_version.txt)意味着我必须想出一些文本作为它期望的值或按原样使用,作为命令的一部分?

答案1

这意味着您需要有一个名为.node_version.txt.该文件中应该是您想要的节点的版本号。例如:v4.6.0latest。要查看有效的版本字符串,请转到https://nodejs.org/dist/

所发生的情况是该构造$(<.node_version.txt)被文件的内容替换。

这条线

https://nodejs.org/dist/$(<.node_version.txt)/node-$(<.node_version.txt)-linux-x64.tar.gz

变成

https://nodejs.org/dist/v4.6.0/node-v4.6.0-linux-x64.tar.gz

该结构$(<filename)是一个特殊的变体命令替换。它实际上相当于$(cat filename).

相关内容