本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/79884722
ace admin 是一个非常好的后台系统ui。
golang是我非常喜欢的一个语言。
并且写了一个admin系统。
写了个博客:
https://blog.csdn.net/freewebsys/article/details/68955060
之前有哥们抱怨说没有看见代码。
我又重新整理了下。
是代码没有上传完整。
现在已经整理完整了,并且build 成镜像,上传到hub上面了。
github:
https://github.com/golangpkg/go-admin
docker hub:
https://hub.docker.com/r/golangpkg/go-admin/
使用scratch 空镜像打包,20MB+
详细的之前也写过了。不重复了:
https://blog.csdn.net/freewebsys/article/details/68955060
下载镜像:
docker push docker.io/golangpkg/go-admin:latest
docker run --rm -it -p 8080:8080 docker.io/golangpkg/go-admin
因为是用的scratch 在编译golang 之后发现 错误:
standard_init_linux.go:190: exec user process caused "no such file or directory"
巨崩溃,因为就报了这一个错误,没有其他的。
发现是因为在编译golang 的时候要加上好多参数。
env GOOS=linux GOARCH=amd64 CGO_ENABLED=1
go build -ldflags "-linkmode external -extldflags -static" -o go-admin main.go
还是参考rancher学习的。
https://github.com/rancher/docker-from-scratch/blob/master/scripts/build
在构建中使用 golang:stretch 基础镜像编译,然后在把文件拷贝出来。
放到 scratch 镜像当中运行。
scratch 镜像是空镜像,使用 exec 进入不去。也不需要。
在编译 sqlite 数据库驱动的时候报错:
vendor/github.com/mattn/go-sqlite3/sqlite3_go18.go:18:10: undefined: SQLiteConn
发现是因为这个类是使用 cgo 调用的lib库,必须要libsqlite3-dev 开发包。
安装上编译报警告:
/go/src/github.com/freewebsys/go-admin/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c:35900: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/tmp/go-link-879145469/000003.o: In function `mygetgrouplist':
/tmp/workdir/go/src/os/user/getgrouplist_unix.go:15: warning: Using 'getgrouplist' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
不知道啥都打包进去了成了 20mb大小,要是没有sqlite 也就 10mb。
在push 到docker hub 上还遇到权限问题。
发现要加url 的全地址:
docker login -u golangpkg docker.io
docker push docker.io/golangpkg/go-admin:latest
golangpkg 是我申请的账号。
在构建一个镜像的,只把编译好的文件拷贝上去。
然后把 conf views static 文件都拷贝上去就可以跑 beego了。
并且跑通了,构建,打docker镜像。
非常不错,资源小很多,下次要使用go-admin系统开发个报表工具。
统计工具啥的。超级快。开发快,启动快运行快。
本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/79884722