やったこと
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.gopackage 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 hogedocker-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