Понять, что такое переменная-заполнитель для команды curl в Dockerfile

Понять, что такое переменная-заполнитель для команды curl в Dockerfile

Я изучаю 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).

Связанный контент