LoginSignup
4
1

More than 5 years have passed since last update.

Goの開発環境に思いを馳せる

Last updated at Posted at 2016-12-11

パソコンを新しくしたんだ...!!!
ということでGoの開発環境について色々と思いを馳せています。
現在、激しく迷走中...ʕ•́ᴥ•̀ʔ

悩みが解決したら、この記事をちゃんとします...!!!

  1. anyenv + goenv
  2. docker-compose
  3. 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の設定とかしたい。なので、ローカルにも必要かな...と。

Intellij IDEA でのGo言語開発環境セットアップ

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
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1