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.0または ですlatest。有効なバージョン文字列を確認するには、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)

関連情報