チュートリアルリモートマシンをWeb IDEに接続する(無料 ALL BETA)
- GitLab 15.4 で
vscode_web_ide
というフラグで導入されました。デフォルトでは無効になっています。- GitLab15.7でGitLab.comで有効に。
- GitLab 15.11でセルフマネージドで有効化。
フラグ: セルフマネージドGitLabでは、デフォルトでこの機能が利用可能です。この機能を隠すには、管理者がvscode_web_ide
という機能フラグを無効にします。GitLab.comでは、この機能は利用可能です。この機能はまだ本番環境では使用できません。
この機能はベータ版であり、予告なく変更される場合があります。
このチュートリアルでは
- GitLab の外に開発環境を作る方法。
- リモートマシンをWeb IDE に接続します。
リモートマシンを Web IDE に接続するには:
前提条件
- root権限を持つリモート仮想マシン
- そのマシンに解決するドメインアドレス
- Dockerのインストール
Let’s Encrypt証明書の生成
Let’s Encrypt証明書を生成します:
-
A
レコードを作成し、ドメインをリモート・マシンに指定します (例:example.remote.gitlab.dev
から10.0.2.2
)。 -
CertbotをインストールしてHTTPSを有効にします:
sudo apt-get update sudo apt-get install certbot
-
証明書を生成します:
export EMAIL="YOUR_EMAIL@example.com" export DOMAIN="example.remote.gitlab.dev" certbot -d "${DOMAIN}" \ -m "${EMAIL}" \ --config-dir ~/.certbot/config \ --logs-dir ~/.certbot/logs \ --work-dir ~/.certbot/work \ --manual \ --preferred-challenges dns certonly
証明書を生成したら、いよいよ開発環境を作成して接続します。
開発環境を Web IDE に接続します。
開発環境と Web IDE を接続します:
-
開発環境を作成します:
export CERTS_DIR="/home/ubuntu/.certbot/config/live/${DOMAIN}" export PROJECTS_DIR="/home/ubuntu" docker run -d \ --name my-environment \ -p 3443:3443 \ -v "${CERTS_DIR}/fullchain.pem:/gitlab-rd-web-ide/certs/fullchain.pem" \ -v "${CERTS_DIR}/privkey.pem:/gitlab-rd-web-ide/certs/privkey.pem" \ -v "${PROJECTS_DIR}:/projects" \ registry.gitlab.com/gitlab-org/remote-development/gitlab-rd-web-ide-docker:0.2-alpha \ --log-level warn --domain "${DOMAIN}" --ignore-version-mismatch
新しい開発環境が自動的に起動します。
-
トークンを取得します:
docker exec my-environment cat TOKEN
リモート接続の設定
Web IDE からリモート接続を設定するには、以下の手順に従います:
- Web IDE を開きます。
- メニューバーで、View > Terminalを選択するか、Control+`を押します。
- ターミナルパネルで、[リモート接続の設定] を選択します。
- ポートを含むリモートホストの URL を入力します (例:
yourdomain.com:3443
)。 - プロジェクトのパスを入力します。
- 取得したトークンを入力します。
また、URLからパラメータを渡してWeb IDEに直接接続することもできます:
-
次のコマンドを実行します:
echo "https://gitlab-org.gitlab.io/gitlab-web-ide?remoteHost=${DOMAIN}:3443&hostPath=/projects"
-
そのURLにアクセスし、取得したトークンを入力してください。
これで完了です!これで開発環境はWeb IDE に接続されたリモートホストとして実行されます。