首页 > 代码库 > 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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。