golangのディレクトリ構成について悩む
今年もあと僅かで終わる今日このごろですが、ようやく本腰上げてGoでバックエンド書き始めようとしました。
しかし早速ハマるディレクトリ設計_(:3」∠)_ 本来Goは$GOPATH配下で開発を進めます。しかし、今回はフロントエンド側のコードも含めてgithub上でgit管理したいのでこんな構成にしたい。
/ ├ docker/ ├ app/ └ front/
appというのがGoのAPI実装ですね。
参考書や、https://golang.org/doc/code.html を見る限り$GOPATH/github.com
配下に管理されるべきなのですが、Go以外のコードが含まれているのに$GOPATH
配下にあるの気持ち悪いなーと思うんです(´・ω・`)とはいえ、$GOPATH以外で開発しようとするとライブラリ周りの部分で面倒そうな対応が必要そうな予感がして面倒だな、と。
さて、この構成どうしたものか。
いろいろ考えたんですが、一番良いのは開発をdocker上に乗っけて、依存関係をdepで解決させることでした。上記でやりたかった構成を適用すると、ざっくりこんな配置になります。
/ ├ docker/ │ - app/ │ └ (今回はイメージそのまま使うのでcomposeへ) │ - docker-compse.yml ├ app/ │ - code .... └ front/ - code ... - node_modules
golangのイメージをベースにこんなdocker-composeを書きます。
version: '3' services: app: image: 'golang:latest' volumes: - 'data:/go' - '../app/.:/go' ports: - "8080:8080" command: 'go run main.go' volumes: data: driver: 'local'
main.goについては、https://qiita.com/macoshita/items/827ae5ac245b94ed4b4c を参考に、8080ポートで待ち受けるやつを適用に書いて動作確認が完了。
docker上の/go
に、appディレクトリをマウントして上げれば希望のことが実現できました。
- 作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太,稲葉貴洋
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/09
- メディア: 大型本
- この商品を含むブログ (4件) を見る