将版本信息写入Go编译的二进制文件
SHELL := /bin/bash
BASEDIR = $(shell pwd)
DOCKER_TARGET=hub.docker.com/lee/hello
# build with version infos
versionDir = "main"
gitTag = $(shell if [ "`git describe --tags --abbrev=0 2>/dev/null`" != "" ];then git describe --tags --abbrev=0; else git log --pretty=format:'%h' -n 1; fi)
buildDate = $(shell TZ=UTC date +%FT%T%z)
gitCommit = $(shell git log --pretty=format:'%H' -n 1)
ldflags="-w -X ${versionDir}.gitTag=${gitTag} -X ${versionDir}.buildDate=${buildDate} -X ${versionDir}.gitCommit=${gitCommit}"
build:
go build -ldflags ${ldflags} -o main ./
docker-build:
docker build . -t ${DOCKER_TARGET}:$(gitTag)
docker-release:
docker push ${DOCKER_TARGET}:$(gitTag)