Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 在入口点文件中导出环境变量不起作用?_Docker_Environment Variables_Entry Point_Docker Entrypoint - Fatal编程技术网

Docker 在入口点文件中导出环境变量不起作用?

Docker 在入口点文件中导出环境变量不起作用?,docker,environment-variables,entry-point,docker-entrypoint,Docker,Environment Variables,Entry Point,Docker Entrypoint,我在将环境变量导出到docker入口点文件时遇到一些问题 这是我的docker文件内容: FROM ubuntu:16.04 ADD entrypoint.sh . RUN chmod 777 entrypoint.sh ENTRYPOINT ["./entrypoint.sh"] CMD ["/bin/bash"] 在入口点文件中,我尝试运行命令“export TOKEN=$client\u TOKEN”。然后,我使用该图像文件创建一个容器,运行“docker

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

这是我的docker文件内容:

   FROM ubuntu:16.04
   ADD entrypoint.sh .
   RUN chmod 777 entrypoint.sh
   ENTRYPOINT ["./entrypoint.sh"]
   CMD ["/bin/bash"]
在入口点文件中,我尝试运行命令“export TOKEN=$client\u TOKEN”。然后,我使用该图像文件创建一个容器,运行“docker exec-it/bin/bash”命令,然后在容器中继续运行“set”命令以显示所有环境变量。因此,我找不到以前导出的$TOKEN变量


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

运行时,必须使用“-e”将主机环境变量(客户端令牌)注入docker容器:

docker run -it --rm -e client_token=<whatever> <your image>
如果您不知道容器运行时的令牌值,则应该在附件期间注入(docker exec)并在其中执行所需的操作,但如果运行容器已经需要该信息,则可能对您无效

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

BRs

谢谢你的帮助。因此,我的案例的细节是,我有一个入口点文件,其中包含运行脚本以获取令牌值,并将其作为令牌分配到环境变量中,然后将其导出。创建容器后,容器中不存在令牌环境变量。有什么解决办法吗?对不起,我想我没有真正理解这个问题。我将编辑我的答案。据我所知,您的主机环境在运行容器时就知道“client_token”的值。您必须注入客户端令牌。谢谢@eramos的支持。这个问题已经解决了。再次,我想说声谢谢。谢谢你,你是我在stackoverflow中帮助的第一个人;)这是我的荣幸。通常我每天都能从这里得到帮助!br您是否可以更新此问题的解决方案?
docker exec -it -e TOKEN=<whatever> <your container>