- GitHubCodespaces使いたいけど、VSCode使いたくない(使えない)ので諦めている人
- Docker for Macの動作が遅いと感じている人
- devcontainer という開発用のコンテナを GitHub 管理下に建てて、そこに VSCode やブラウザを接続して利用する。
- (社内資料)[GitHub Codespaces レクチャー https://docs.google.com/document/d/1D1T2yZS0tc-jOWT-DyN_qN3YCkjVUBUyCqaaM8wy9uo/edit#heading=h.u5vab87omlba]
Docker for Macで開発していて、諸々効率が悪かった。
- 常にCPUを200%ぐらい利用している状態で操作が重い
- ローカルで案系の開発環境をまっさらな状態から立ち上げるのに20~30分ぐらいかっていた。
- Docker for Mac × IntelCPUの場合 VirtioFS だと nitro のdevサーバーが立ち上がらない
Codespacsに移行すればローカルPCに負荷がかからないため上記問題は全て解決するため移行した。
- リポジトリ側の設定は既にshimizukawaさんがやっていてすぐに案件で利用できる状態
- ただこれはVSCodeで開発している人の話、私はVSCode使えないので以下のどちらかの選択が必要。
- VSCode使う -> VSCodeへの移行は過去に何度もチャレンジしたがダメだった。
- devcontainer内で開発する。 -> こっちにした。
- CUIのエディター(vim)で開発したい。
- GitHubCopilotを利用したい。
- devcontainerとローカルでクリップボードを共有したい。
- ローカルの.bashrcを使いたい。
- シェルのヒストリーの内容を共有したい。
GitHubCodespacesの設定等を利用してローカル環境と同じ状態にするように対応した。
最終的には以下の流れで開発に入っている。
- devcontainerを立ち上げる(ブラウザ)
- VSCodeはportforwdingのために起動する必要はある。
- devcontainer内にGitHubCLIを利用して入る
- setup.shの実行が終わるのを待つ
- 開発
- CodespacesはGitHubの設定項目でdotfilesのリポジトリを設定できる。
- dotfilesの中に
install.sh
を置いていると、起動時に自動で探してきて実行してくれる。 - https://docs.github.com/ja/codespaces/setting-your-user-preferences/personalizing-github-codespaces-for-your-account#dotfiles
- これを利用してNeovimをbuildするようにした。
- 各種Vimプラグインの設定も
install.sh
の中で行ったが、GitHubCopilotをvim上から利用するプラグインは初回にブラザ上でGitHubの認証が必要なためこれは自動化できなかった。 - https://github.com/login/device
- dotfilesの中に
- devcontainer上のVimでヤンクをした内容をローカルのクリップボードに入れたい。
OSC52
を利用して対応OSC52
はクリップボード操作のシーケンス、端末がOSC52
に対応していれば利用できる。(items2は対応していた)
- もともと存在する.bashrcをシンボリックリンクで置き換えることにより自前の.bashrcを読み込ませた
- 複数シェル環境の履歴を同期できるツールがあったが導入を断念した。
- 履歴の同期に開発者が公開しているサーバーに情報を送信する必要があるため断念した(一応セルフホストはできるらしい
- そもそも要求として.bash_historyだけではなく、プロジェクトに必要な個人の秘匿情報(ファイル)も共有したいと思った
- どうしたか?
- bpのGoogleDriveのフォルダをdevcontainer上にマウントするようにした。
- 将来的には cronとかで 5分に一回ぐらい.bash_historyをGoogleDrive上のファイルに書き込むというような事をしたい。