J'ai un Dockerfile et je voudrais rendre l'API configurable avec une valeur par défaut.
DE socialengine/nginx-spa
ENV API_URL localhost: 6007
Donc, quand je lance cette image, je serais en mesure de remplacer le localhost: 6007 avec quelque chose comme ci-dessous:
docker run -e API_URL = production.com: 6007 ui
Cela ne fonctionne pas et je ne trouve pas d'explication claire sur la façon de procéder.
Aucun conseil?
Ce que vous avez décrit devrait très bien fonctionner. Donné:
$ cat Dockerfile
FROM socialengine/nginx-spa
ENV API_URL localhost:6007
$ docker build -t ui .
[...]
Considère ceci:
$ docker run -it --rm ui env | grep API_URL
API_URL=localhost:6007
Par rapport à:
$ docker run -it --rm -e API_URL='production:6007' ui env | grep API_URL
API_URL=production:6007
Passer un -e VARNAME=varvalue
sur le docker run
la ligne de commande remplacera un ensemble par défaut dans votre Dockerfile.
Si vous voyez un comportement différent, veuillez mettre à jour votre question pour afficher exactement la commande que vous exécutez et la sortie associée.
Mise à jour
Voici l'exemple complet, enregistré pour votre plaisir visuel: