結論
環境変数 REMOTE_COTAINERS=true
かどうかでDev Containerかローカルの環境かを判定できる。
export | grep REMOTE_CONTAINERS
declare -x REMOTE_CONTAINERS="true"
dotfilesでの応用例
dotfilesとは: ホームディレクトリに配置してある,.から始まる設定ファイルを管理するリポジトリのこと。
自分のdotfilesリポジトリでは,Dev Containersで実行されるdotfiles installスクリプトに以下のようなif文を追加しています。
if [ "${REMOTE_CONTAINERS}" == "true" ]; then
echo "REMOTE_CONTAINERS IS ${REMOTE_CONTAINERS}, THEN OVERWRITE SYMBOLIC LINKS"
ln -sf ~/dotfiles/${f} ~/${f}
echo "=====CREATE SYMBOLIC LINKS ${HOME}/dotfiles/${f} --> ${HOME}/${f}====="
普段自分のローカルの開発環境ではシンボリックリンクを使ってdotfiles配下の設定ファイルをホームディレクトリにリンクしているのですが,上書きオプション-f
をDev Containers内でのみ使用することでDev Containersにもともとあった設定ファイルを上書きしてシンボリックリンクを作成しています。
補足
dotfilesをDev Containersで使う方法については以下を参照してください。