上記は1年ほど前の記事のようなのですが、今だと docker-compose でボリュームコンテナが作れるようになっているので、もっと楽できそうだと思い、やってみました。
やってみた結果はこちら→ https://github.com/macoshita/go-docker-dev
リポジトリを見てもらえば分かるのですが、実質下記の docker-compose.yml さえ書けば他は何もいりません。
version: '2'
services:
app:
image: 'golang:1.6-onbuild'
volumes:
- 'data:/go'
- '.:/go/src/app'
ports:
- '8080:8080'
command: 'go run main.go'
volumes:
data:
driver: 'local'
依存ライブラリが変わった時は、下記コマンドで download を行います。
docker-compose run app go-wrapper download
下記コマンドで実行。上記リポジトリでは Gin で 8080 にサーバを立てていて、 localhost:8080/ping
にアクセスすると pong と返されます。
docker-compose up
参考にした記事と比べて、
- ボリュームコンテナを事前に作る必要がなくなった
- 依存ライブラリのダウンロードコマンドが短くなった
- オフィシャルイメージをそのまま使ってるので docker-compose build 不要
などなど、かなり楽できるようになりました。