パソコンを新しくしたんだ...!!!
ということでGoの開発環境について色々と思いを馳せています。
現在、激しく迷走中...ʕ•́ᴥ•̀ʔ
悩みが解決したら、この記事をちゃんとします...!!!
- anyenv + goenv
- docker-compose
- gvm
1. anyenv + goenv
今までの環境はコレでした。
特に不都合もなく、~/go/
を$GOPATH
としていました。
2. docker-compose
こんな感じのを書く。
docker-compose.yml
version: '2'
services:
app:
image: 'golang:1.7-onbuild'
volumes:
- 'data:/go'
- '$PWD:/go/src/app'
command: 'go run main.go'
volumes:
data:
driver: 'local'
こうすると依存するパッケージをgo get
してくれる。
$ docker-compose run app go-wrapper download
そのあと、こうすることでcommand
を実行。
$ docker-compose up -d
小さくgo test
したりするのはなんだか面倒くさいと思ってしまったのですが、本来こういう使い方ではない...?
3. gvm
本当はローカルにGoを入れずになんとかならないかと思っていたのですが、エディタにgolintの設定とかしたい。なので、ローカルにも必要かな...と。
gvmはパッケージ別に$GOPATH
の切り替えもできるし、悪くなさそう。
- Goのバージョンリストを確認する。
$ gvm listall
- インストールされているGoのバージョンリストを確認する。
$ gvm list
- インストールする。
$ gvm install {version}
- バージョンを切り替える。
$ gvm use {version}
- 好きな場所に
$GOPATH
を設定する。
$ cd {path}
$ gvm pkgset create --local
$ gvm pkgset use --local
複数のプロジェクトを並行して開発していることが多いのですが、$GOPATH
はdefaultが~/.gvm/pkgsets/{go-version}/global
のため、切り替えるたびに戻ってしまう。
致し方ないのかな...
gvmのすべて
Usage: gvm [command]
Description:
GVM is the Go Version Manager
Commands:
version - print the gvm version number
get - gets the latest code (for debugging)
use - select a go version to use (--default to set permanently)
diff - view changes to Go root
help - display this usage text
implode - completely remove gvm
install - install go versions
uninstall - uninstall go versions
cross - install go cross compilers
linkthis - link this directory into GOPATH
list - list installed go versions
listall - list available versions
alias - manage go version aliases
pkgset - manage go packages sets
pkgenv - edit the environment for a package set