docker shell form entrypoint不替换变量,如果不是由`docker run`提供

zbdgwd5y  于 2023-06-21  发布在  Docker
关注(0)|答案(1)|浏览(122)

我正在看这个答案https://stackoverflow.com/a/37904830/169252试图解决我的问题。
但是,这似乎对我的情况不起作用

ENV API="list,create,delete"
ENV ID="1-1"
ENV VERBO=5

ENTRYPOINT /myapp --id=$ID --api=$API --origin="*" --trace --metrics --verbosity=$VERBO  --allow-insecure

但是,如果docker run命令没有提供,我总是得到invalid value "" for flag -verbosity:,即
docker run -p 80:8080 $DOCKER_IMAGE
但是,如果我运行它作为
docker run -p 80:8080 -e VERBO=4 $DOCKER_IMAGE,它似乎工作(有另一个问题,现在在此之后,所以不能张贴实际结果).
我用这个正确吗?这个想法是VERBO是一个可选参数,不需要由docker run设置-只有在需要的时候。

tv6aics1

tv6aics11#

ENV VERBO=5的声明是正确的,并将默认值设置为5。
要解决此问题,请运行容器并对其进行检查:

docker run -p 80:8080 $DOCKER_IMAGE
docker ps -a
docker container inspect <container-id>

Config字典中,检查应该包含VERBO=5Env列表的值。

"Env": [
     "PATH=...",
     "VERBO=5"
 ]

如果有这个键值,就意味着你已经正确地设置了默认值。

相关问题