.env ファイルを Docker パラメータに変換

.env ファイルを Docker パラメータに変換

通常のファイルがあり、.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できます。sede

sed 's/^/-e /;H;1s/^/docker run myimage /;1h;$!d;x;s/\n/ /ge' your.env

-eオプションとdocker呼び出しを使用して予約済みスペースに行を収集し、最後の行でコマンド全体を実行します。

関連情報