将版本信息写入Go编译的二进制文件

将版本信息写入Go编译的二进制文件

Makefile

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)

Dockerfile

# build stage
FROM golang:1.14 as build
ENV GOPROXY="https://goproxy.io"
ENV CGO_ENABLED=0
WORKDIR /app
COPY . /app
RUN make build


# production stage
FROM alpine as production

WORKDIR /app
#COPY ./conf/ /app/conf
COPY --from=build /app/main /app
EXPOSE 8081
ENTRYPOINT ["/app/main"]


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值