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.0
o 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)
.