我在将环境变量导出到 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 变量。
如何将环境变量导出到入口点文件?
最佳答案
您必须在运行时使用“-e”将宿主环境变量 (client_token) 注入(inject)到 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 值,你应该在附加期间注入(inject)(docker exec)并在里面执行所需的操作,但如果运行它可能对你无效容器已经需要该信息。
docker exec -it -e TOKEN=<whatever> <your container>
BR
关于docker - 在 Entrypoint 文件中导出环境变量不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60549981/