3

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

这是我的 docker 文件内容:

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

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

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

4

1 回答 1

3

您必须在运行时使用“-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 ...

如果您在容器运行时不知道令牌值,则应在附件(docker exec)期间注入并在内部执行所需的操作,但如果运行容器已经需要该信息,则可能对您无效。

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

BR

于 2020-03-06T00:53:28.940 回答