1 Star 0 Fork 15

Davy / go_real_md

forked from 海风 / go_real_md 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
Makefile 3.62 KB
一键复制 编辑 原始数据 按行查看 历史
.DEFAULT_GOAL := help
# 以目录名作为镜像,应用文件名
CURDIRNAME?=$(shell basename ${CURDIR})
# 可用参数定义 CURDATE 的值
CURDATE?=$(shell date '+%Y%m%d')
REGISTRY?=haifengat
#===================================== git ================================#
gitpush: # git 代码提交并推送
@if [ ! $M ]; then \
echo "add param: M=<your comment for this commit>"; \
exit 1; \
fi
git commit -a -m "${M}"
git push origin
tag: # 添加标签(当前日期)
# 删除当前日期的 tag
- git tag -d ${CURDATE}
- git push origin :refs/tags/${CURDATE}
git tag -a ${CURDATE} -m "$(shell git log -1 --pretty=%B)" # 最后提交注释作为tag注释
git push origin --tags
#------------------------------------------------------------------------#
#================================= 镜像处理 =============================#
build: # 编译 打包镜像
go build -o ${CURDIRNAME}
mkdir -p ./lib
\cp /root/go/pkg/mod/gitee.com/haifengat/goctp\@v0.6.6-$(shell cat ./go.mod |grep goctp| cut -d- -f2)/lnx/*.so ./lib
@# 替换容器中的 appName 以解决 entrypoint 启动程序不能用变量的问题
sed -i 's#ENTRYPOINT.*#ENTRYPOINT ["./${CURDIRNAME}"]#g' Dockerfile
docker build . -t ${REGISTRY}/${CURDIRNAME}:${CURDATE} --no-cache --build-arg AppName=${CURDIRNAME}
rm -rf ./lib
docker: build # 镜像推送
docker push ${REGISTRY}/${CURDIRNAME}:${CURDATE}
# 镜像发送 latest
docker tag ${REGISTRY}/${CURDIRNAME}:${CURDATE} ${REGISTRY}/${CURDIRNAME}:latest
docker push ${REGISTRY}/${CURDIRNAME}:latest
#--------------------------------------------------------------------------#
#=================================== 部署 =====================================#
# 应用服务器 pre/prod 免密登录
rm: # 清除原有容器和同版本镜像(报错则忽略),记录部署日志
- ssh ${MAKECMDGOALS} "docker rm -f ${CURDIRNAME}; docker rmi -f ${REGISTRY}/${CURDIRNAME}:${CURDATE};"
echo "${MAKECMDGOALS} $(shell date '+%Y/%m/%d %H:%M:%S') ${REGISTRY}/${CURDIRNAME}:${CURDATE}" >> deploy_log
srv: rm # --restart=always 参数会导致重复报警,且 portainer 不能及时显示停止状态。
ssh ${MAKECMDGOALS} "docker run -it -d --name ${CURDIRNAME} \
--restart=on-failure:5 \
-e TZ=Asia/Shanghai \
-e tradeFront=tcp://180.166.132.68:41205 \
-e quoteFront=tcp://180.166.132.68:41213 \
-e loginInfo='${broker/investor/password/appid/authcode}' \
-e products='' \
-e redisAddr='${redis服务IP}:6379' \
-e pgMin='postgresql://postgres:12345@${pg服务IP}:5432/postgres?sslmode=disable' \
${REGISTRY}/${CURDIRNAME}:${CURDATE}"
local:
docker rm -f ${CURDIRNAME}
# docker rmi -f ${REGISTRY}/${CURDIRNAME}:${CURDATE}
docker run -it -d --name ${CURDIRNAME} \
--restart=on-failure:5 \
-e TZ=Asia/Shanghai \
-e tradeFront=tcp://180.166.132.68:41205 \
-e quoteFront=tcp://180.166.132.68:41213 \
-e loginInfo='${broker/investor/password/appid/authcode}' \
-e products='' \
-e redisAddr='127.0.0.1:6379' \
-e pgMin='postgresql://postgres:12345@127.0.0.1:5432/postgres?sslmode=disable' \
${REGISTRY}/${CURDIRNAME}:${CURDATE}
echo "$(shell date '+%Y/%m/%d %H:%M:%S') ${REGISTRY}/${CURDIRNAME}:${CURDATE}" >> deploy_log
#--------------------------------------------------------------------------#
.PHONY: gitpush tag
.PHONY: build docker publish
.PHONY: srv
.PHONY: help
help:
@echo 'git提交并推送: make gitpush M="提交说明"'
@echo '创建tag(当前日期): make tag'
@echo '镜像生成并推送: make docker'
@echo '部署本地: make local'
@echo '部署服务: make srv'
@echo 'make -n 检查语法'
@echo 'make xxxx CURDATE=yyyymmdd 指定日期(版本)'
Go
1
https://gitee.com/Davy-lin/go_real_md.git
git@gitee.com:Davy-lin/go_real_md.git
Davy-lin
go_real_md
go_real_md
master

搜索帮助