一直推崇开发环境容器化,对于我这种多台电脑同时办公的开发者是十分必要的。最近换了一台工作机器,想起按照原来的方式再走一遍环境配置,不禁恼火。于是还是搞起了容器化编译。下面记录一下过程。

启动环境
boot.sh
#!/usr/bin/env bash

docker run -d -t --name=go --net=host -v /root/golang/go:/go -v /root/golang/code:/code --privileged docker.io/golang bash
/root/golang/go/root/golang/code
进入容器
exec.sh
docker exec -it go /bin/bash
拉取依赖

这里以gin为例:

go get -u github.com/gin-gonic/gin
编译

以下面这个helloworld为例:

# gohello.go

package main

import (
"github.com/gin-gonic/gin"
"net/http"
)

func main(){
   router := gin.Default()
   router.GET("/", func(c *gin.Context) {
      c.String(http.StatusOK, "Hello World")
   })
   router.Run(":8000")
}

运行命令:

go build gohello.go
gohello

运行这个文件,在浏览器中访问:

http://{ip}:8000/
hello world

另外,很多go项目对go的版本是有要求的,所以需要注意下运行的golang的版本号。