通常のファイルがあり、.env
これらの変数(または一部)を次のようにDockerコンテナに渡そうとします。
.env ファイル:
VAR1=blah
VAR2=some other blah
ドッカーコマンド:
docker run myimage -e VAR1=blah -e VAR2=some other blah
awk
または、同様の一般的なUnixコマンドを使用してsed
これを達成するにはどうすればよいですか?
答え1
努力する
awk -F= '{printf "%s=\"%s\" ",$1,$2 ;}' file.env
変数の生成
ドッカーコマンドは
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呼び出しを使用して予約済みスペースに行を収集し、最後の行でコマンド全体を実行します。