项目来自: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
。此标志将关闭此操作。使用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
可以看到编译过程中创建了不同操作系统的二进制文件
...
? 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
效果:有点意思
原文:https://www.cnblogs.com/uscWIFI/p/11910393.html