web-debug-server
web-debug-server
项目来自:https://github.com/itzg/web-debug-server
这位大哥的镜像做的很有意思:一个很小的web debug服务器,访问它可以显示请求的url和头信息
Dockerfile文件:
FROM scratch
COPY web-debug-server /
ENTRYPOINT ["/web-debug-server"]
代码是go语言写的,然后经Makefile编译
.PHONY: snapshot
snapshot:
goreleaser --snapshot --rm-dist
rm-dist
该发布需要一个干净的目录,该标志确保/dist
目录会被删除。snapshot
默认情况下,发布设置为release
。此标志将关闭此操作。- goreleaser是一个针对不同操作系统进行编译需要安装正确的依赖包的问题
使用docker容器先来编译下
此处参考了:https://studygolang.com/articles/22242?fr=sidebar
$ docker run --rm --privileged -v $(pwd):/go/src/web-debug-server -w /go/src/web-debug-server goreleaser/goreleaser:latest-cgo release --snapshot --rm-dist
- -v $(pwd):/go/src/web-debug-server将本地目录再docker容器做了一个挂载
- -w /go/src/web-debug-server指定了下工作目录
可以看到编译过程中创建了不同操作系统的二进制文件
...
• BUILDING BINARIES
• building binary=dist/web-debug-server_windows_amd64/web-debug-server.exe
• building binary=dist/web-debug-server_linux_amd64/web-debug-server
• building binary=dist/web-debug-server_linux_arm_6/web-debug-server
• building binary=dist/web-debug-server_darwin_amd64/web-debug-server
...
web-debug-server]$ tree -C .
.
├── dist
│ ├── config.yaml
│ ├── web-debug-server_linux_amd64
│ │ └── web-debug-server
│ ├── web-debug-server_linux_arm_6
│ │ └── web-debug-server
│ └── web-debug-server_windows_amd64
│ └── web-debug-server.exe
├── Dockerfile
├── go.mod
├── go.sum
├── main.go
├── Makefile
└── README.md
4 directories, 10 files
web-debug-server]$ file dist/web-debug-server_linux_amd64/web-debug-server
dist/web-debug-server_linux_amd64/web-debug-server: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
然后将该二进制文件放入Dockerfile(官方应该有构建不同平台镜像的教程)
FROM scratch
COPY dist/web-debug-server_linux_amd64/web-debug-server /
ENTRYPOINT ["/web-debug-server"]
docker run
$ docker run -it --rm -p 8080:8080 web-debug-server
效果:有点意思