简体   繁体   中英

How use ENV variables in Dockerfile ENTRYPOINT command

I'm brand new user of Docker...

I'm tring use Enviroments variables on my Dockerfile...

It's like that:

FROM openjdk:11-jdk-slim-buster
ENV JAVA_APP my-app
EXPOSE 8080
COPY target/$JAVA_APP-*.jar /app/$JAVA_APP.jar
CMD java -jar /app/$JAVA_APP.jar

The result is that: the COPY command gets the value of JAVA_APP variable. But the CMD command doesn't.

Is there some another way to use ENV variables?

If I make this super simple Dockerfile

FROM ubuntu
ENV JAVA_APP my-app
CMD echo $JAVA_APP

and build and run it with

docker build -t test .
docker run --rm test
docker run --rm -e JAVA_APP=Hello test

It prints 'my-app' and 'Hello'. So it does work. If it still doesn't work for you, can you expand your post with the command you use to run the container?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM