Mac 上交叉编译Golang项目到Linux(sqlite3)

改造个人网站用golang + sqlite3重新搭建,替代8年前老旧的.asp程序,部署时发现go没法在Mac OSX上交叉编译到Linux,原因是go-sqlite3使用了cgo。

打算用Docker解决编译Golang程序的问题,服务器上Docker部署过项目,Mac上有尝试过boot2docker,体验不是很好,最近发现docker官方出了 Docker for Mac 基于QEMU,不用另外安装VirtualBox,也不用单独下载Linux镜像,虽然还是beta版,在Mac中使用已经非常方便和Linux一样用法,直接执行 docker ps

安装好后,一句话搞定:

1
docker run --rm -it -v $GOPATH:/go golang:1.6 bash -c 'cd $GOPATH/src/yryz.net && go build'

给家里一台11年老台式机 Windows 10 尝试装了Docker for Windows ,这个版本是基于Hyper-V,结果CPU不支持二级地址转换(SLAT),宣告失败! (Coreinfo 可以查看CPU是否支持SLAT)