![使用docker部署golang服务](http://img.jiangsulong.com/220410/0433353141-0.jpg)
文章插图
Go 的编译结果基本上只依赖libc(传言,第三方库是否依赖那就另当别论了), 所以Docker image 实际可以做的很小
- 使用apline 作为docker 的运行环境产生尽可能小的运行环境
- 国内使用有很多情况下是不能使用golang官网仓库的,这边需要使用go mod
- golang 编译需要一个环境,但是运行的时候并不需要编译的时候的那些go get的东西,所以需要另外建立一个docker image, 这个docker 使用上一个docker的编译结果
# buildFROM golang:1.12-alpine AS builderWORKDIR /go/src/AppCOPY . .# set go mod proxyENV GO111MODULE=onENV GOPROXY=https://goproxy.ioRUN go build -ldflags "-w -s"# runtimeFROM alpine:latestRUN apk --no-cache add ca-certificatesWORKDIR /root/# using build resultCOPY --from=builder /go/src/app/ .CMD ["./appname"]
【使用docker部署golang服务】
推荐阅读
- ingress-nginx 中 Rewrite 的使用
- centos8使用python3自带的venv创建虚拟环境报错问题
- DNS何时使用TCP协议,何时使用UDP协议?
- Linux系统怎么使用命令行查询公网IP地址
- Xshell中SSH协议远程访问Linux,使用lrzsz工具实现文件上传下载
- 什么是Docker?与虚拟机有什么区别?
- 入手快半年,行程6600km,特斯拉model3的使用体验
- 汽车发动机自动启停功能,为什么不建议您使用?
- SpringBoot使用Redis实现 自动缓存 更新 删除
- 推荐5款好用的开源 Docker 工具