何をやるか
これから何回かに分けて、 Docker + Go + Gin(Webフレームワーク)の開発環境を整えていきます。
ディレクトリ構成やコマンドの書き方、変更検知してコンパイルなど、開発に必要な最低限の環境を整えていきます。
今回はとりあえず Docker 上で go を動かすまでです。
Docker 開発環境の作成
とりあえず docker-compose.yml を作成する。
Dockerfile は build ディレクトリ以下に置くのが正しいが、 docker-compose.yml はどこに置くか微妙なところ。 今回 docker-compose.yml はローカル開発のためだけに使うので、 リポジトリのルートに置いた。
version: "3" services: app: container_name: "app" image: golang:1.16 volumes: - ./:/code tty: true working_dir: /code command: /bin/bash
main.go
main.go をリポジトリルートに用意する。
Goのディレクトリ構成のスタンダードには main.go を配置しておく場所については明記されていなかった。 とりあえずリポジトリのルートに配置することにした。
package main import "fmt" func main() { fmt.Println("started") }
動作確認。
$ docker-compose up -d $ docker-compose ps Name Command State Ports -------------------------------- app /bin/bash Up $ docker exec -it app go run main.go started
参考
Go のディレクトリ構造のスタンダードについて