利用GoReleaser构建golang程序,多平台构建,同时构建Docker镜像
以https://github.com/ruanun/simple-server-status 构建发布为例子来说明
GoReleaser官网:https://goreleaser.com/
1,安装goreleaser,初始化.goreleaser.yaml
配置文件
下载可执行文件并配置到环境变量中
执行goreleaser init
初始化配置文件,具体参照https://github.com/ruanun/simple-server-status项目的配置
同时要创建Dockerfile文件
可利用goreleaser check
检查配置是否正确
可用goreleaser release --snapshot --clean
仅本地构建,不进行发布
2,发布到github,dockerhub
配置github token到环境变量
export GITHUB_TOKEN="YOUR_GH_TOKEN"`
登录docker hub
#-u 指定登录用户名
docker login -u ruanun
创建git标签;(构建时指定--snapshot参数,则不需要创建tag)
git tag -a v1.0.1 -m "v1.0.1"
git push origin v1.0.1
本项目内嵌的了web页面,所以需先构建web,这里利用docker的node环境构建
git clone https://github.com/ruanun/simple-server-status.git
cd simple-server-status
#挂载web到docker中利用docker的node环境构建web
docker run --rm -it -v ./web:/web node:lts /bin/bash
cd web
npm i
npm run build:prod
退出docker容器,复制web构建产物到golang项目中
cp -r ./web/dist/* ./dashboard/public/dist/
正式构建并发布
goreleaser release
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。