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

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

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

  1. ENV API="list,create,delete"
  2. ENV ID="1-1"
  3. ENV VERBO=5
  4. 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。
要解决此问题,请运行容器并对其进行检查:

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

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

  1. "Env": [
  2. "PATH=...",
  3. "VERBO=5"
  4. ]

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

相关问题