博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker 运行 go语言二进制程序
阅读量:5765 次
发布时间:2019-06-18

本文共 886 字,大约阅读时间需要 2 分钟。

hot3.png

1、创件dockerfile文件命名为“Dockerfile.scratch"

# 使用scratch开启FROM scratch# 拷贝编译程序COPY main main# 打开8080端口EXPOSE 8080# 运行!CMD ["./main"]

2、使用go程序编写一个web服务

package mainimport ("fmt""net/http")func handler(w http.ResponseWriter, r *http.Request) {        fmt.Fprintf(w, "hello world!")}func main() {        http.HandleFunc("/", handler)        fmt.Println("服务端口: 8080")        http.ListenAndServe(":8080", nil)}

3、编译程序、创建镜像、运行服务

$ go build main.go$ sudo docker build -t webserver -f Dockerfile.scratch .$ sudo docker run webserverstandard_init_linux.go:190: exec user process caused "no such file or directory"

运行程序会报以上错误,原因是cgo需要libc库,使用以下命令重新编译运行:

$ CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .$ sudo docker build -t webserver -f Dockerfile.scratch .$ sudo docker run -p 8080:8080 webserver服务端口: 8080

成功开启docker容器的 go web服务

转载于:https://my.oschina.net/zhizhisoft/blog/2966531

你可能感兴趣的文章
手把手教你如何提高神经网络的性能
查看>>
前端布局原理涉及到的相关概念总结
查看>>
递归调用 VS 循环调用
查看>>
使用sstream读取字符串中的数字(c++)
查看>>
树莓派下实现ngrok自启动
查看>>
javascript静态类型检测工具—Flow
查看>>
MachineLearning-Sklearn——环境搭建
查看>>
node学习之路(二)—— Node.js 连接 MongoDB
查看>>
Goroutine是如何工作的?
查看>>
《深入理解java虚拟机》学习笔记系列——垃圾收集器&内存分配策略
查看>>
TriggerMesh开源用于多云环境的Knative Event Sources
查看>>
GitLab联合DigitalOcean为开源社区提供GitLab CI免费托管
查看>>
通过XAML Islands使Windows桌面应用程序现代化
查看>>
区块链现状:从谨慎和批判性思维看待它(第二部分)
查看>>
苹果公司透露Siri新发音引擎的内部原理
查看>>
GCM 3.0采用类似方式向Android、iOS和Chrome发送消息
查看>>
如何成为一家敏捷银行
查看>>
Oracle在JavaOne上宣布Java EE 8将会延期至2017年底
查看>>
Javascript 深入浅出原型
查看>>
简单之极,搭建属于自己的Data Mining环境(Spark版本)
查看>>