2 votes

Les points dans la variable ENV dans le dockerfile ne fonctionnent pas

Lorsque je déclare des variables ENV avec des points dans le nom, elles ne sont pas définies correctement. Le framework que je suis en train de dockeriser nécessite que cette variable soit définie :

  framework.config.location 

Dockerfile

ENV JAVA_HOME=/opt/java/jre1.8 \
framework.config.location=$HOME/framework/config 

RUN echo $framework.config.location && \
    cd $framework.config.location

.config.location

/bin/sh : 1 : cd : can't cd to .config.location

2voto

Pietro Martinelli Points 1058

Je pense framework.config.location (et en général une chaîne contenant des points) n'est pas un identifiant valide du point de vue des shells Unix comme bash.

Vous pouvez cependant l'utiliser dans la section ENV de votre Dockerfile : le résultat est quelque chose comme

env framework.config.location=$HOME/framework/config TheCommand

mais vous ne pouvez pas accéder à la valeur de la variable à travers $framework.config.location orf {$framework.config.location} . vous pouvez le lire en utilisant value=$(env | grep 'framework.config.location' | cut -f 2 -d '=') et ensuite utiliser comme $value ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X