Comprender el marcador de posición variable para el comando curl en Dockerfile

Comprender el marcador de posición variable para el comando curl en Dockerfile

Estoy aprendiendo sobre Dockerfile y no había trabajado antes con curl.

Estoy tratando de entender la línea 26 eneste archivo Docker.

&& 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)Significa que tengo que crear algún texto con el valor esperado o que se use tal cual, como parte del comando?

Respuesta1

Eso significa que necesitas tener un archivo llamado .node_version.txt. En ese archivo debe estar el número de versión del nodo que desea. Por ejemplo: v4.6.0o latest. Para ver cadenas de versión válidas, vaya ahttps://nodejs.org/dist/

Lo que sucede es que esta construcción $(<.node_version.txt)se reemplaza con el contenido del archivo.

Esta línea

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

se convierte

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

La construcción $(<filename)es una variante especial de unsustitución de comando. Es prácticamente equivalente a $(cat filename).

información relacionada