结合make指令+dockefile 快速打包容器模板
makefile
SHELL = /bin/bash
NAME=violet-finance-rpc
BRANCH=$(shell git rev-parse --abbrev-ref HEAD)
VERSION=git-$(subst /,-,$(BRANCH))-$(shell git describe --tag --dirty)
IMAGE_TAG=$(VERSION)
IAMGE_REPO=docker.fastdocker.com:5000
PKG=violet/app/finance/rpc
gen_proto:
goctl rpc protoc --proto_path=./ --proto_path=../../../ --go-grpc_out=./ --go_out=./ --zrpc_out=./ -m finance.proto --style go_zero
gen_doc:
protoc --proto_path=./ --proto_path=../../../ --doc_out=../../../doc --doc_opt=../../../common/doc_template.tmpl,finance-rpc.md finance.proto
linux:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \
go build -v -tags netgo -installsuffix netgo -installsuffix cgo -ldflags '-w -s' -ldflags "-X main.Version=$(VERSION)" \
-o ./build/linux/violet-finance-rpc
push: linux
docker build -t ${IAMGE_REPO}/violet-finance-rpc:${IMAGE_TAG} .
docker push ${IAMGE_REPO}/violet-finance-rpc:${IMAGE_TAG}
docker rmi ${IAMGE_REPO}/violet-finance-rpc:${IMAGE_TAG}
docker image prune -f
dockerfile
FROM docker.fastdocker.com:5000/violet-base:3.20.3
COPY ./build/linux/violet-finance-rpc /app/violet-finance-rpc
COPY ./etc/finance.yaml /app/etc/finance.yaml
WORKDIR /app
# Run the app by default when the container starts
CMD /app/violet-finance-rpc -f /app/etc/finance.yaml
特别注意go编译指令,和docke基础镜像