在 Entrypoint 文件中导出环境变量不起作用?

Exporting a environment variable in Entrypoint file not work?

我在将环境变量导出到 docker 入口点文件时遇到了一些问题。

这是我的 docker 文件内容:

   FROM ubuntu:16.04
   ADD entrypoint.sh .
   RUN chmod 777 entrypoint.sh
   ENTRYPOINT ["./entrypoint.sh"]
   CMD ["/bin/bash"]

在 Entrypoint 文件中,我尝试 运行 命令 "export TOKEN=$client_token"。然后,我使用该图像文件创建一个容器,然后我使用 运行 "docker exec -it /bin/bash" 命令并进入容器,我继续 运行 "set" 命令以显示所有环境变量。所以,我找不到之前导出的 $TOKEN 变量。

如何将环境变量导出到入口点文件?

当 运行ning:

时,您必须使用“-e”将主机环境变量 (client_token) 注入 docker 容器
docker run -it --rm -e client_token=<whatever> <your image>

例如,这适用于这种入口点:

#!/bin/bash
export TOKEN=$client_token
echo "The TOKEN is: ${TOKEN}"
# do stuff ...

如果你不知道容器运行时的token值,你应该在attachment时注入(docker exec)并执行required内部操作,但如果 运行ning 容器已经需要该信息,则它可能对您无效。

docker exec -it -e TOKEN=<whatever> <your container>

BR