じぶんクラウドのDocker上に構築したCloud9にブラウザから接続してどこでもNode.jsの開発ができるようになりました。メニューのRun - Run with にはデフォルトでいろいろな言語のRnnerがあります。ここにGoもありました。最近使っていなかったので今回はGoの開発環境を追加しようと思います。
プロジェクト
デフォルトのNode.jsに加えてGoをインストールします。リポジトリはこちらです。Cloud9へのGoのインストールについてはWriting a Go Appに書いてあります。
Dockerfile
Goをダウンロードしてインスト-ルします。Go環境変数は/root/.profileに追記します。
FROM node:0.12  | 
docker-compose.yml
docker-compose.ymlには今回使用するWebアプリのMartiniで使用する3000ポートを公開します。
cloud9:  | 
Dockerイメージを再作成します。これまでNode.jsのアプリは/workspaceで作業していました。このディレクトリはDockerホストにマップしているので起動しているコンテナやイメージを破棄しても消えません。
$ docker-compose build  | 
Cloud9のコンソールから環境変数が設定されているか確認します。
$ go env GOROOT  | 
Martini
MartiniはGo用のSinatraライクなマイクロフレームワークです。Cloud9のコンソールからgo getでインストールします。インストール先はGOPATHに設定した/workspace/gocode/になります。
$ go get github.com/go-martini/martini  | 
server.go
workspaceに適当なディレクトリを作成します。/のルートと簡単なHello Worldを書きます。
package main  | 
起動
server.goを選択した状態でCloud9のRunボタンを押して起動します。

またはCloud9のコンソールから直接go runを実行します。
$ cd /workspace/martini  | 
Previewが動かない
メニューからPreview -> Preview Runnning Applicationを選択できます。残念ながらホスト名がundefinedになってしまいました。まだ設定が足りないようです。

直接Cloud9のホストに対してブラウザを開くとHello Worldが表示されました。とりあえずプレビューはできそうです。
