docker_golang使用

官方 docker 镜像:https://hub.docker.com/_/golang


拉取安装镜像

  1. 拉取镜像

    1
    $ docker pull golang:1.13.5
  2. 跑一个后台持续运行的实例, 后面只需要进去 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 不到 第三方库
  3. 测试一下单元测试

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    root@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.003s
  4. done!


qnap docker 设置工作区

将 go 目录挂载到 /go/src/app (应为 /go 是默认的 gopath ) 即可, 参考: https://hub.docker.com/_/golang, 工作区是 WORKDIR /go/src/app