Skip to content

Instantly share code, notes, and snippets.

@wanshot
Last active December 7, 2023 09:47
Show Gist options
  • Save wanshot/c9ac1b955e359beae0edc12d5818f4f5 to your computer and use it in GitHub Desktop.
Save wanshot/c9ac1b955e359beae0edc12d5818f4f5 to your computer and use it in GitHub Desktop.
ローカル開発をDocker for macからGitHub Codespacesに移行して便利に使っている話

対象者

  • GitHubCodespaces使いたいけど、VSCode使いたくない(使えない)ので諦めている人
  • Docker for Macの動作が遅いと感じている人

GitHub Codespacesとは?

移行経緯

Docker for Macで開発していて、諸々効率が悪かった。

  • 常にCPUを200%ぐらい利用している状態で操作が重い
  • ローカルで案系の開発環境をまっさらな状態から立ち上げるのに20~30分ぐらいかっていた。
  • Docker for Mac × IntelCPUの場合 VirtioFS だと nitro のdevサーバーが立ち上がらない

Codespacsに移行すればローカルPCに負荷がかからないため上記問題は全て解決するため移行した。

移行の障害

  • リポジトリ側の設定は既にshimizukawaさんがやっていてすぐに案件で利用できる状態
  • ただこれはVSCodeで開発している人の話、私はVSCode使えないので以下のどちらかの選択が必要。
    1. VSCode使う -> VSCodeへの移行は過去に何度もチャレンジしたがダメだった。
    2. devcontainer内で開発する。 -> こっちにした。

devcontainer内で開発するための要求

  1. CUIのエディター(vim)で開発したい。
  2. GitHubCopilotを利用したい。
  3. devcontainerとローカルでクリップボードを共有したい。
  4. ローカルの.bashrcを使いたい。
  5. シェルのヒストリーの内容を共有したい。

対応

GitHubCodespacesの設定等を利用してローカル環境と同じ状態にするように対応した。

最終的には以下の流れで開発に入っている。

  1. devcontainerを立ち上げる(ブラウザ)
  • VSCodeはportforwdingのために起動する必要はある。
  1. devcontainer内にGitHubCLIを利用して入る
  2. setup.shの実行が終わるのを待つ
  3. 開発

1. vimで開発したい + 2. GitHubCopilotを利用したい

3. devcontainerとローカルPC内でクリップボードを共有したい。

  • devcontainer上のVimでヤンクをした内容をローカルのクリップボードに入れたい。
  • OSC52 を利用して対応
  • OSC52 はクリップボード操作のシーケンス、端末が OSC52 に対応していれば利用できる。(items2は対応していた)

4.ローカルの.bashrcを使いたい。

  • もともと存在する.bashrcをシンボリックリンクで置き換えることにより自前の.bashrcを読み込ませた

5. シェルのヒストリーの内容を共有したい。(未対応)

  • 複数シェル環境の履歴を同期できるツールがあったが導入を断念した。
  • 履歴の同期に開発者が公開しているサーバーに情報を送信する必要があるため断念した(一応セルフホストはできるらしい
  • そもそも要求として.bash_historyだけではなく、プロジェクトに必要な個人の秘匿情報(ファイル)も共有したいと思った
  • どうしたか?
  • bpのGoogleDriveのフォルダをdevcontainer上にマウントするようにした。
  • 将来的には cronとかで 5分に一回ぐらい.bash_historyをGoogleDrive上のファイルに書き込むというような事をしたい。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment