我有一个 dockerfile,它声明了一些稍后在入口点中使用的环境变量,但入口点从不获取这些变量的值。我尝试了 shell 形式,但看起来它什么也没做。这是我的示例 dockerfile :-
FROM java:8
ENV JAVA_OPTS="
RUN apt-get -y install ca-certificates curl
RUN mkdir /app
RUN mkdir /docker
CMD ["java", "-version"]
ADD /target/app.jar /app/app.jar
ENV spring.profiles.active dev
ENV encryptor.password xyz
COPY entrypoint.sh /docker/entrypoint.sh
RUN ["chmod", "+x", "/docker/entrypoint.sh"]
EXPOSE 8080
ENTRYPOINT ["/bin/bash", "-c", "/docker/entrypoint.sh"]
CMD ""
我的 entrypoint.sh 非常简单,并使用这些 ENV 变量:-
#!/bin/bash
java -Djava.security.egd="file:/dev/./urandom" -Dencryptor.password=$encryptor.password -Dspring.profiles.active=$spring.profiles.active -jar /app/app.jar
我应该如何让我的 ENTRYPOINT 能够访问之前在 Dockerfile 中声明的那些 ENV 变量,以便它能够为传入的参数分配适当的值。浏览了互联网上的几篇文章和资料,并尝试了很多方法来获得这个工作,但似乎没有工作一次。