将 .env 文件转换为 Docker 的参数

将 .env 文件转换为 Docker 的参数

我有一个常规.env文件,想将这些(或一些)变量传递到 Docker 容器,如下所示:

.env 文件:

VAR1=blah
VAR2=some other blah

泊坞窗命令: docker run myimage -e VAR1=blah -e VAR2=some other blah

如何使用awksed(或类似)等常规 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 调用收集保留空间中的行,并在最后一行执行整个命令。

相关内容