じぶんクラウドの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が表示されました。とりあえずプレビューはできそうです。