Goに入門するため、Dockerで環境を構築する
Go Docker
Published: 2020-12-20

やったこと

Go の開発環境を Docker で構築してみます。

確認環境

$ docker --version
Docker version 19.03.13, build 4484c46d9d
$ docker-compose --version
docker-compose version 1.27.4, build 40524192

調査

Quick start

こちらを使います。

$ git clone git@github.com:tamesuu/docker-sample.git
$ cd docker-sample/golang/
$ mkdir work

ホストOS

$ vim work/main.go
package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

ホストOS

$ docker-compose up -d
Recreating golang_app_1 ... done
$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
832161a8fe30        golang_app          "bash"              58 seconds ago      Up 57 seconds       0.0.0.0:9000->8080/tcp   golang_app_1
$ docker-compose exec app go run main.go
Hello, World!

docker-compose --help より

exec Execute a command in a running container

コンテナに対して、コマンドを実行します。

ディレクトリ指定版

$ mkdir work/hoge
$ vim work/hoge/server.go
$ docker-compose exec app go install hoge

docker-compose exec app go help より

install compile and install packages and dependencies

$ docker-compose exec app ../bin/hoge
server dayo
$ docker-compose exec app go env | grep GOPATH
GOPATH="/go"

ここはハマったのですが、go install した時、go/bin にビルドされた結果が出力されるようでした。

go/src
go/bin