Jeśli ustawię zmienną środowiskową, powiedzmy ENV ADDRESSEE=world
, i chcę jej użyć w skrypcie punktu wejścia połączonym w ustalony ciąg, taki jak:
ENTRYPOINT ["./greeting", "--message", "Hello, world!"]
mając world
zmienną wartość środowiska, jak mam to zrobić? Próbowałem użyć, "Hello, $ADDRESSEE"
ale to nie działa, ponieważ bierze się $ADDRESSEE
dosłownie.
źródło
ENTRYPOINT java -jar /dockertest.jar -Djava.security.egd=file:/dev/./urandom -Dserver.port=$port
podczasENV port=123
. Port ENV nie został rozwiązany. Jakieś pomysły, dlaczego?--attitude "shouting"
argumentu dodocker run
polecenia, które powinno zostać przekazane./greeting
ENTRYPOINT ./greeting --message "Hello, $ADDRESSEE\! $0 $@"
jeśli chcesz również przekazać dodatkowe zmienne./greeting
poprzezdocker run
wywołanie (lub przekazaćCMD
plik Dockerfile)greeting
w twoim przykładzie). hynek.me/articles/docker-signalsPróbowałem rozwiązać za pomocą sugerowanej odpowiedzi i nadal napotkałem pewne problemy ...
To było rozwiązanie mojego problemu:
W szczególności ukierunkowane na Twój problem:
źródło
Po wielu bólach i wielkiej pomocy ze strony @vitr et al. Powyżej, zdecydowałem się spróbować
i to zadziałało.
na przykład
i
oba ustawiły poprawnie port w moim kontenerze
Nr ref
zobacz https://www.cyberciti.biz/tips/bash-shell-parameter-substitution-2.html
źródło