VSCodeのdevcontainer.jsonのremoteEnvでハマった話
Published in
2 min readApr 22, 2020
VSCodeのRemoteContainerでは、 .devcontainer/devcontainer.json に以下のような設定を書くことでdockerのrunArgsやdockerのログインshellに環境変数を設定することができる。
.devcontainer/devcontainer.json
// RunArgs
"runArgs": ["--env-file",".env"],
"remoteEnv": {
"HOGE": "${containerEnv:HOGE}",
"FUGA": "${containerEnv:FUGA}"
},
.env
HOGE=hoge
FUGA="fuga"
この時、上記のFUGAのように、valueをquotationで囲ってはいけない。囲ってしまうと、以下のようにquotationまで環境変数に入ってしまう。
> echo $HOGE
hoge
> echo $FUGA
"fuga"
とある環境でローカルでは .env を python-dotenv で環境変数にセットしコンテナ上では devcontainer.json 経由でセットしていたところ、2つの環境の環境変数に差異があり、原因特定に結構な時間ハマってしまった。なお、 python-dotenv ではquotationは自動的に取り除かれる模様。