【发布时间】:2021-07-26 00:40:47
【问题描述】:
我有一个以 ubuntu 映像为基础的 Dockerfile。
FROM ubuntu
ARG var_name
ENV env_var_name=$var_name
ENTRYPOINT ["/bin/bash", "-c", "echo $env_var_name"]
我期待这个
-
执行一个简单的 bash 脚本,它将从用户键盘输入中获取一个 环境 变量,并在运行 docker 容器后输出该值。一切顺利。
-
(我遇到问题的部分)在每次运行
docker run --rm -e env_var_name=%valueOfVar% IMAGE-NAME后将环境变量的值保存到文件+,我可以看到从键盘值输入的列表。
我对第 2 部分的想法是
docker run --rm -e env_var_name=%valueOfVar% IMAGE-NAME > /directory/tosave/values.txt。这可行,但只保存最后一个值,而不是值列表。
如何更改 Dockerfile 以将值保存到文件中,Docker 将看到该文件以及运行后从哪个 Docker 读取和输出值?可能我不应该使用 ENTRYPOINT?
感谢任何可能的帮助。我卡住了。
强调环境变量的输出和保存是预期的。
【问题讨论】:
-
试试
>>而不是> -
你得到的实际输出是什么?你希望它有什么不同?
-
@DavidMaze 例如,在输入命令时我使用 env_var_name=hello,所以运行
docker run....后的输出(我在问题部分写了命令)将是你好。我的意思是你好将被保存到某个文件中。所以最后的文件将包含大量类型变量。
标签: bash docker dockerfile