docker+githook实现goweb项目自动发包部署
Posted ZJJ2DSN
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker+githook实现goweb项目自动发包部署相关的知识,希望对你有一定的参考价值。
环境:一台公司的开发服务器(可以随便装东西~),自己的电脑
1.先在两台机器上面安装好git,然后在服务器上面初始化一个空的库,然后还有一个代码库
cd /home/baizhi/src
git init --bare DAP_go.git
git clone [email protected]/DAP_go.git 这里是公司的仓库
2.然后本地代码的关联一下,remote是可以关联多个远程仓库的,我关联了两个,一个自己初始化的一个公司的,这里用自己的来配置hook
mkdir DAP_go
cd DAP_go
git init
git add remote baizhi [email protected]:/home/src/DAP_go.git
3.配置服务器上面的hooks
cd DAP_go.git/hooks mv post_receive.sample post_receive vi post_receive(内容如下) #!/bin/sh unset GIT_DIR cd cd /home/baizhi/src/DAP_go git pull exit 0
4.然后在本地的DAP_go上面修改代码,push成功后就会触发hooks了,我这里比较坑爹,我得提交两次,一次提交到公司的(例行公事,等于我的代码做了两次备份,再也不怕硬盘坏掉了:),一次提交到服务器上自己新建的。
切换到自己本地的DAP_go下 vi test hello git add . git commit git push(我这边默认是到了公司的仓库,那么现在公司的仓库有新代码了) git push baizhi dev(baizhi是服务器上远程库的名字,一般关联一个的时候用的一般是origin,dev是分支) Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 266 bytes | 0 bytes/s, done.(到这里是代码写入到服务器上自己初始化的库,下面是hook的脚本执行的过程) Total 3 (delta 1), reused 0 (delta 0) remote: From ip:server/dap_go remote: 7a2f32a..d9df2ae dev -> origin/dev remote: Updating 7a2f32a..d9df2ae remote: Fast-forward remote: test | 1 + remote: 1 files changed, 1 insertions(+), 0 deletions(-) To [email protected]:/home/baizhi/src/DAP_go.git 7a2f32a..d9df2ae dev -> dev
5.然后在服务器的DAP_go上看看是不是最新的代码,这里显示了Already up-to-date,说明成功了
[[email protected] DAP_go]$ git pull Already up-to-date.
6.上面做的这些就可以实现代码变动的监控,下面docker要做的任务就是对代码进行热编译。然后上面的post_reciver的脚本可能还需要添加构建新的docker镜像的命令,然后就可以在测试,或者正式环境上拉取最新的镜像?明天弄,先下班
以上是关于docker+githook实现goweb项目自动发包部署的主要内容,如果未能解决你的问题,请参考以下文章