みなさん、DevContainerは使っていますか?最近個人開発の中でDevContainerを触ってみたところ便利な機能や設定をいくつか発見しましたので、備忘録がてら共有したいと思います。
Dev > Containers: Copy Git Configは必ずONに!
この設定にチェックを入れることで、ローカルのgitの設定(git config --global で設定しているもの)がDevContainer上でも引き継がれます。GPGキーも引き継がれるのでとても便利!1
DevContainerの設定はコマンドパレットを開いてDev Containers: Settings for Dev Containers
から確認できますよ!
ghを使えると便利!
devContainerを0から作成する画面のSelect additional features to install
からGitHub CLI
が選べるのですが、これがとても便利!大きなできることを挙げると
- PRの作成・確認(途中までCLIで作って続きはブラウザから!も可能)
- Issuの一覧確認
- Gistの作成
- GPG・SSH Keyの設定
ghの設定方法
ghはGithubCLIをインストールするのみですと、GHの環境変数がローカルから引き継がれず新しい環境を作るたびにGHの設定が必要になります。以下は環境変数をローカルから引き継ぐ時に私が行った方法です。[HOST]はMac側での操作が必須の作業となります。
- [HOST]
cat ~/config/gh/hosts.yaml
等のコマンドでGHの設定を確認する。 - [HOST] シェルの
.シェル名rc
に下記を追記するexport GITHUB_TOKEN="[1.で確認したoauth_tokenのValue]" export GITHUB_USER="[1. で確認したuserのValue]"
- シェルを再起動し、
code (DevContainerしたいDir)
し、Rebuild Containerを行う。
ターミナルでgit commitで開かれるエディターがデフォルトVSCodeになった!
何も設定せずに、ターミナルでgit commit と打つとエディターに移ると思うのですが今まではデフォルトがnanoでExitのキーバインドがVSCodeのキーバインドと被っておりCommitしずらいという問題がありました。
しかし、デフォルトがVSCodeになったことで可読性や描きやすさが大幅に向上しました!
DevContainer上では確認していますが、ローカルのターミナルは未検証ですが、検証する際は git config --global core.editor vim
等にしてからがおすすめです。
git push時に fatal: detected dubious ownership in repository at '/workspaces/プロジェクト名 ...
というエラーが出る時の対処方法
自分の場合は、プロジェクトのルートディレクトリーのownerだけがrootになっており、これを修正する必要がありました。 そのときは、chown [各ファイルの所有者の名前] .
というコマンドを打つことによって権限周りを正常に戻し、Pushが可能になります。
参考資料
https://github.com/devcontainers/features/tree/main/src/github-cli
https://webkaru.net/linux/chown-command/
-
GPGの設定方法についての記事も書いてます…! ↩