Estás usando la forma ejecutiva de ENTRYPOINT. A diferencia del formulario de shell , el formulario exec no invoca un shell de comandos. Esto significa que el procesamiento de shell normal no ocurre. Por ejemplo, ENTRYPOINT [ "echo", "$HOME" ]
no realizará la sustitución de variables en $ HOME. Si desea que el proceso de shell use el formulario de cáscara o ejecutar una cáscara directamente, por ejemplo: ENTRYPOINT [ "sh", "-c", "echo $HOME" ]
.
Cuando se usa el formulario exec y se ejecuta un shell directamente, como en el caso del formulario shell, es el shell el que realiza la expansión de la variable de entorno, no la ventana acoplable (de la referencia de Dockerfile ).
En su caso, usaría la forma de shell
ENTRYPOINT ./greeting --message "Hello, $ADDRESSEE\!"
ENTRYPOINT java -jar /dockertest.jar -Djava.security.egd=file:/dev/./urandom -Dserver.port=$port
mientrasENV port=123
. El puerto ENV no se resuelve. ¿Alguna idea de por qué?