docker_golang使用
官方 docker 镜像:https://hub.docker.com/_/golang
拉取安装镜像
拉取镜像
1
$ docker pull golang:1.13.5
跑一个后台持续运行的实例, 后面只需要进去
go run
一下即可1
$ docker run -itd --network host -e GOPROXY=https://goproxy.io --name golang --restart=always -v ~/GoLab_app:/GoLab -w /GoLab golang:1.13.5 bash
-w /GoLab
: 参数是指 容器内的 golang app 的目录, 通过-v ~/GoLab_app:/GoLab
将宿主目录~/GoLab_app
挂载到容器里面的目录/GoLab
--network host
: 使用主机模式, 就不用一个个 端口映射了, 直接使用宿主机子的端口-e GOPROXY=https://goproxy.io
: 设置 go get 的代理, 不然 get 不到 第三方库
测试一下单元测试
1
2
3
4
5
6
7
8
9
10
11
12
13root@9966333b33ca:/GoLab/test_tail# go test -v tail_test.go
go: downloading go.uber.org/zap v1.10.0
go: downloading github.com/hpcloud/tail v1.0.0
go: downloading go.uber.org/atomic v1.4.0
go: extracting go.uber.org/multierr v1.2.0
go: finding github.com/hpcloud/tail v1.0.0
=== RUN Test_tail
--- exit Test_tail
--- PASS: Test_tail (0.00s)
PASS
ok command-line-arguments 0.003sdone!
qnap docker 设置工作区
将 go 目录挂载到 /go/src/app
(应为 /go
是默认的 gopath ) 即可, 参考: https://hub.docker.com/_/golang, 工作区是 WORKDIR /go/src/app