Skip to content

nosuz/dev_container

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Boilerplate for VSCode Dev Container

VSCode の dev container を使用するための雛形です。

pre-required packages

sudo apt install docker.io docker-buildx docker-compose-v2

add user

sudo usermod -aG docker $USER

clone boilerplate files

Step 1

このレポジトリを次のコマンドでクローンしてください。

git clone https://github.com/nosuz/dev_container.git
cd dev_container
rm -r .git
git init
git -m main # if needed

code .
# Edit .devcontainer/Dockerfile to install required APT packages before rebuilding this container.

Option 1

オプション:.devcontainer/generate_env.shまたは.devcontainer/generate_env.shを実行して USER ID を.devcontainer/.envに書き込んでおいてください。このオプションを実行することで、Python のライブラリーのようにユーザ権限でインストールされるファイルがある場合に、docker image の作成に必要な時間が短くなり、イメージのサイズが小さくなります。

bash .devcontainer/generate_env.sh
# or
python .devcontainer/generate_env.py

Step 2

必要なパッケージをインストールするように Dockerfile を編集してください。

Step 3

このディレクトリを VSCode で開き、コマンドパレット(Ctrl + Shift + P)で Dev Containers: Rebuild container を実行すると、コンテナイメージが作成されて接続されます。

user name and id

このコンテナは、コンテナを開いたユーザと同じ ID で実行されます。そのため権限の問題なしにディレクトリを共有できます。ただしコンテナ内のユーザ名は、vscodeとなり、ls -lで共有ディレクトリを見るとユーザ名が元と変わってvscodeになります。

また、.devcontainer/devcontainer.jsonremoteUserrootを指定した場合には、root 権限で実行されます。

VSCode settings and extensions

Dev container では、VSCode の設定と機能拡張がリセットされます。そこで、必要な設定と機能拡張を.devcontainer/devcontainer.jsoncustomizationsに記載します。

// devcontainer.json
{
  "customizations": {
    "vscode": {
      "settings": {},
      "extensions": ["mhutchie.git-graph", "streetsidesoftware.code-spell-checker"]
    }
  }
}

初期設定では、Code Spell CheckerGit Graphがインストールされます。

Git

editor が設定されていないため、コマンドラインからgit commit --amendなど編集が必要な操作ができません。そこで、.git/configeditorの設定を加えます。

[core]
 editor = code --wait

ローカルの~/.gitconfigに設定がある場合は、デフォルト設定ではこのファイルがコピーされるのでコンテナ毎の設定は不要です。

GitHub access

GitHub は、sshパッケージをインストールしてあれば他に特別な設定無く使用できると思います。次のコマンドで GitHub への接続を確認できます。

$ ssh -T git@github.com
Hi nosuz! You've successfully authenticated, but GitHub does not provide shell access.

Docker Images

古いイメージは、次のコマンドで一括削除できます。

for i in $(docker image ls | awk '$1 == "<none>" && $2 == "<none>" { print $3 }'); do echo $i; docker image rm $i; done

Codex

codex.devcontainerは、

参考

About

Boilerplate for VSCode dev_container .

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published