我有一个Dockerfile,我正在尝试读取运行时参数。这是我的dockerfile
FROM clojure:openjdk-8-lein-slim-buster
ENV dbconfig ""
ENTRYPOINT ["java","-Ddbconfig=${dbconfig}", "-jar", "abc.jar", "server"]
EXPOSE 8080
这是docker run命令,我在运行时传递值。我在这里做错什么了吗?值始终被识别为空。我也尝试过删除ENV dbconfig ""
,但没有任何效果docker run --rm -e dbconfig='{"somekey" "value"}' xyz/abc
最佳答案
您有两种定义入口点的方法:exec vs shell。
But:
因此,支持shell形式以允许env变量替换:
ENTRYPOINT java -Ddbconfig=${dbconfig} -jar abc.jar server
或以exec形式调用shell:ENTRYPOINT [ "sh", "-c", "java","-Ddbconfig=${dbconfig}", "-jar", "abc.jar", "server" ]