gpt4 book ai didi

docker run ENTRYPOINT 不替换环境变量

转载 作者:行者123 更新时间:2023-12-03 16:17:58 26 4
gpt4 key购买 nike

我有一个入口点,如下所示

ENTRYPOINT /usr/bin/java ... /usr/path/$FILE

我试图在启动容器时传递一个环境变量

-e FILE=myfile.txt

但是这个值似乎没有被替换。 Java 抛出一个异常 /usr/path is a directory 。如果我在 dockerfile 中使用文件名对入口点进行硬编码,它就可以正常工作。

ENTRYPOINT /usr/bin/java ... /usr/path/myfile.txt

它确认 $FILE 没有被替换。

如何解决这个问题?

注意:

有趣的是 docker-compose 工作得很好!!

environment:
- FILE=myfile.txt

最佳答案

为了保证shell form of ENTRYPOINT ,您正确使用的,确实替换了环境变量 $FILE,添加了一个 exec:

ENTRYPOINT exec /usr/bin/java ... "/usr/path/$FILE"

然后检查您的 docker run -e FILE=xxx yourImage 是否正常工作。

假设您的 Dockefile 包含一个 ENV FILE aDefaultFile指令,以便 docker run -e 工作。

关于docker run ENTRYPOINT 不替换环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51119023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com