てくなべ (tekunabe)

ansible / network / automation / StackStorm

GitHub 対応オンライン IDE「GitPod」の Docker 環境をカスタマイズする

■ GitPod とは

GitPod は GitHubリポジトリを扱えるブラウザIDEです。わざわざ手元に git clone するほどでもないけれど、GitHub 標準のエディタでは寂しい時ときに便利です。無料プランで毎月100時間利用できます。

www.gitpod.io

www.ksakae1216.com

GitPod では、Docker コンテナで動作するターミナル(ワークスペース)も利用できます。 デフォルトのイメージをそのまま利用するだけでなく、起動時に任意のコマンドを実行したり、別のイメージを指定するなどしてカスタマイズもできます。

この記事ではこれらのカスタマイズ方法についてかんたんに説明します。

■ 設定ファイルは .gitpod.yml

GitPod で起動するコンテナに対する設定は、リポジトリトップに .gitpod.yml というファイルを配置して行います。

起動時にコマンドを実行する

.gitpod.yml に以下のような指定をすると、起動時に任意をコマンドを実行できます。ここでは、pip install ansible を実行する指定をしています。

tasks:
  - command: "pip install ansible"

f:id:akira6592:20181230115456p:plain
指定したコマンドがターミナル起動時に自動実行される

command 以外にも initbefore でもコマンドが実行できるようです。詳細は以下の公式ドキュメントを参照してください。

Start Tasks - Gitpod Documentation

別のイメージを指定する

.gitpod.yml に以下のような指定をすると、別のコンテナイメージを利用できます。ここでは、python:3.7 を指定しています。

image: python:3.7

f:id:akira6592:20181230115525p:plain
指定したイメージのコンテナが起動した
(補足)現在、デフォルトのイメージでは Python 3.6.6 です。

詳細 Docker Image - Gitpod Documentation

gp init コマンドで .gitpod.yml を作成する

ターミナル内で gp init というコマンドで対話的に項目に答えていくと、.gitpod.yml を作成できます。

f:id:akira6592:20181230114900p:plain
gp init コマンド

f:id:akira6592:20181230114924p:plain
各項目に答えていく

■ おわりに

今回ご紹介したカスタマイズ方法の他にも、Dockerfile を指定したりportを exposeしたりもできます。

詳細は、GitPod公式ドキュメントの Configuring Workspaces を参照して下さい。