golang与docker怎么结合使用
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,golang与docker怎么结合使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。docker 基于 Golang 开发,已经不用解释
千家信息网最后更新 2025年01月31日golang与docker怎么结合使用
golang与docker怎么结合使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
docker
基于 Golang
开发,已经不用解释了,而 Golang
天生适合运行在 docker
容器中,却不是这个原因,这得益于:Golang
的静态编译,当在编译的时候关闭 cgo
的时候,可以完全不依赖系统环境。
测试代码
package mainimport ( "fmt" "io/ioutil" "net/http" "os")func main() { resp, err := http.Get("https://www.baidu.com") check(err) body, err := ioutil.ReadAll(resp.Body) check(err) fmt.Println(len(body))}func check(err error) { if err != nil { fmt.Println(err) os.Exit(1) }}
编写dockerfile
基于scratch
scratch
是一个特殊的镜像,它是一个虚拟镜像,也就是一个空白镜像;利用Golang
的静态化编译无依赖性,可以大幅度减少编译时间和镜像大小。
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .
GOOS=linux
是将交叉编译的目标设置为Linux
,这样你在Mac
或者Win
下也不会出现问题。 -installsuffix cgo
是为了在静态编译中导入net
dockerfile
FROM scratchRUN mkdir /appADD main /app/WORKDIR /appCMD ["/app/main"]
docker build -t golang-scratch-app .
scratch有个问题,就是时区问题,因为scratch是空镜像,无法执行
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
虽然scratch打包出来的镜像是最小化的,但时区问题限制了使用,所以一般不推荐使用
基于alpine
使用alpine镜像,该镜像也很小,约4.4M,同时还提供了apk包管理工具,非常适合做一些定制化的基础镜像,故而可以构建满足需求的时区的相关镜像,dockerfile文件如下:
FROM alpineRUN apk --no-cache add tzdata ca-certificates && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone RUN mkdir /appADD main /app/WORKDIR /appCMD ["/app/main"]
看完上述内容,你们掌握golang与docker怎么结合使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
镜像
问题
编译
时区
静态
内容
原因
方法
时候
更多
最小
特殊
束手无策
为此
不用
也就是
代码
依赖性
同时
基础
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
mc有哪些什么好的纯生存服务器
金蝶kis数据库2007
监控服务器是用来做什么
数据库2007作业
移动互联网新科技
海康监控服务器连不上
山东科软网络技术有限公司
jq获取链接出数据库
浙江服务器工控机的配置
科技互联网行业
软件开发美国禁止
预防网络安全心得体会300字
开展网络安全宣传 普及
手机无网络安全证书
北京程序软件开发建设
熟练使用sql数据库
重庆手机软件开发服务商
我的世界寒假必玩生存服务器推荐
检验单 数据库 表
同城约会网络技术有限公司
一梦江湖电脑服务器和手机不一样
软件开发工程师去哪里
软件开发需要学什么语言最好
潼关软件开发项目管理
安阳网络技术产品介绍
博雅数据库河南农业大学
网络安全的观后感50
新建数据库对象失败
柯达安网络技术有限公司
期货交易服务器