我有一个常规.env
文件,想将这些(或一些)变量传递到 Docker 容器,如下所示:
.env 文件:
VAR1=blah
VAR2=some other blah
泊坞窗命令:
docker run myimage -e VAR1=blah -e VAR2=some other blah
如何使用awk
或sed
(或类似)等常规 Unix 命令来实现这一点?
答案1
尝试
awk -F= '{printf "%s=\"%s\" ",$1,$2 ;}' file.env
生成变量
docker 命令是
docker run myimahe $(awk -F= '{printf "-e %s=\"%s\" ",$1,$2 ;}' file.env) other
请注意-e
后面的情况。
答案2
使用 GNU,sed
您可以使用以下标志sed
运行命令e
:
sed 's/^/-e /;H;1s/^/docker run myimage /;1h;$!d;x;s/\n/ /ge' your.env
-e
这将使用选项和 docker 调用收集保留空间中的行,并在最后一行执行整个命令。