首页 > 代码库 > docker+githook实现goweb项目自动发包部署(1)

docker+githook实现goweb项目自动发包部署(1)

环境:一台公司的开发服务器(可以随便装东西~),自己的电脑

1.先在两台机器上面安装好git,然后在服务器上面初始化一个空的库,然后还有一个代码库

cd /home/baizhi/src
git init --bare DAP_go.git
git clone git@service/DAP_go.git  这里是公司的仓库

2.然后本地代码的关联一下,remote是可以关联多个远程仓库的,我关联了两个,一个自己初始化的一个公司的,这里用自己的来配置hook

mkdir DAP_go
cd DAP_go
git init
git add remote baizhi baizhi@ip:/home/src/DAP_go.git

3.配置服务器上面的hooks

cd DAP_go.git/hooksmv post_receive.sample post_receivevi post_receive(内容如下)#!/bin/shunset GIT_DIRcdcd /home/baizhi/src/DAP_gogit pullexit 0

4.然后在本地的DAP_go上面修改代码,push成功后就会触发hooks了,我这里比较坑爹,我得提交两次,一次提交到公司的(例行公事,等于我的代码做了两次备份,再也不怕硬盘坏掉了:),一次提交到服务器上自己新建的。

切换到自己本地的DAP_go下vi testhellogit add .git commitgit 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_goremote:    7a2f32a..d9df2ae  dev        -> origin/devremote: Updating 7a2f32a..d9df2aeremote: Fast-forwardremote:  test |    1 +remote:  1 files changed, 1 insertions(+), 0 deletions(-)To baizhi@ip:/home/baizhi/src/DAP_go.git   7a2f32a..d9df2ae  dev -> dev

5.然后在服务器的DAP_go上看看是不是最新的代码,这里显示了Already up-to-date,说明成功了

[baizhi@dev DAP_go]$ git pullAlready up-to-date.

6.上面做的这些就可以实现代码变动的监控,下面docker要做的任务就是对代码进行热编译。然后上面的post_reciver的脚本可能还需要添加构建新的docker镜像的命令,然后就可以在测试,或者正式环境上拉取最新的镜像?明天弄,先下班

 

docker+githook实现goweb项目自动发包部署(1)