首页 > 其他 > 详细

docker部署go应用

时间:2019-09-06 09:28:57      阅读:111      评论:0      收藏:0      [点我收藏+]
前言

我们微服务很多都是用golang来实现,打算用docker来部署我们的微服务。
而且go的应用就是一个可执行的二进制文件,所以使用docker部署go应用非常简单。
这个教程直接以编译好的可执行的二进制文件为例。

编译注意事项

如果当前系统和拉取的镜像的系统不同,需要交叉编译。比如我当前是在Mac下执行go build编译的,而我拉取的golang镜像是基于Linux的,启动容器时会发现go的二进制文件无法执行,所以要进行交叉编译:GOOS=linux GOARCH=amd64 go build,这里GOOS=linux表示编译到linux,GOARCH=amd64表示64位,如果镜像系统是32位,则GOARCH=386,更多信息请自行Google。

构建应用镜像

由于官方的golang镜像太大了,720多M,所以为了最小化我们的应用,我们采取了alpine镜像,大小连4MB都不到。

1.编写Dockerfile


DockerFile如下:

FROM alpine
MAINTAINER  Aze
WORKDIR /go/src/
COPY . .
EXPOSE 8777
ENTRYPOINT ["./app/main"]

2.构建镜像

docker build -t golang-docker:v1 .
技术分享图片

运行程序

docker run --name edge-service -d -p 8777:8777 -v /var/www/app/app:/go/src/app golang-docker:v1

技术分享图片

总结

1.docker使用必须要熟悉各种参数代表的含义,有时候可以让你事半功倍。
2.docker部署golang项目方便以后部署和运维管理,需要挂载目录。
3.配置项可以通过挂载数据卷或者传env环境变量来处理,具体选择还是看实际的场景和需求。

参考

1.http://bazingafeng.com/2017/09/14/deploying-a-go-application-in-docker/
2.https://blog.csdn.net/weixin_34007886/article/details/90491175

docker部署go应用

原文:https://blog.51cto.com/onebig/2435742

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!