🤖

開発環境をホストできるCoder(coder.com)を試してみた

に公開

Coder(coder.com)とは

  • ブラウザベースの開発環境をホストするためのソフトウェア
  • コミュニティ版は外部の認証基盤との統合などで機能制限があるが無償で利用可能
  • 開発環境のテンプレートを管理して、テンプレートから開発環境(コンテナ)を作成して、Web版VSCodeで開発作業をする、というのがざっくりした利用イメージだと思う
  • 名前が普遍的過ぎて、関連情報を検索するのに困る。さらに、VSCode側のServer関連の用語と混ざって、混沌としているような気がする。
    • Coder: このページの対象(coder.com)

    • code-server: Coderの構成要素のひとつ。Web版のVSCodeを提供するサーバ

    • Visual Studio Code Server:ローカル版のVSCodeに備わっているサーバ機能。リモート環境へのトンネルを提供したり、Web UIを提供したり

Coderのインストール~開発環境が使えるようになるまで

Coderインストール

  • WSLでDockerが使える状態を前提とする
  • 公式ページの通り実行
curl -L https://coder.com/install.sh | sh
coder server

サーバが起動するのでブラウザからhttp://127.0.0.1:3000にアクセス

Let‘s create your first admin user accountのページが表示されるので管理アカウントを作成するため適当なメールアドレスとパスワードを入力

すると、すぐにテンプレートのコンソールが表示される

開発環境のデプロイ

テンプレートのコンソールから、とりあえずDocker ContainersUse templateを押してみる

テンプレートの作成画面が表示されるのでSaveする

Terraformのコードなどが表示された画面になる。これがテンプレートの詳細画面で、ここからWorkspace(開発環境)を作成できるらしい。Create Workspaceを実行

Workspaceの名前を入力して続行(IntelliJが選択されているけど、これと関係なくVSCodeは使える)

ビルドが進行し完了すると、code-serverやTerminalを起動できる画面になる

開発環境に入ってみる

Terminalを実行すると、Webベースのターミナルが起動する。

sudo apt udpateなどのコマンドが使える

code-serverを実行するとWeb版のVSCodeが起動する。

開発環境を使ってみる

  • asdfをインストール
  • asdfでpython, nodejs, javaをインストール
  • githubのリポジトリをclone
  • pythonでNiceGUIのアプリを起動 ⇒ Workspaceのコンテナ内で動作しているが、Coderが自動的にポートフォワードみたいな動作をしてくれて、ローカルのブラウザからアクセスができる

いろいろ確認してみた結果

  • code-server (ブラウザベースのVSCode)

    • ローカル版VSCodeに比べ快適さは若干劣る気がするものの、割と普通に使える
    • 機能拡張のリストにGitHub Copilot ChatはあるがGitHub Copilotはない
  • ユーザ管理

    • 複数ユーザを管理でき、ユーザ管理者とかテンプレート管理者、ただのメンバなどロールを設定できる
    • ユーザ個別に開発環境(コンテナ)を作成して使用できる
    • 外部の認証基盤との統合が可能らしい(Open ID Connect)
  • Docker in Workspace

    • 何も考えずに作成したWorkspaceではdockerは動かなかったが、方法はあるみたい

Discussion