内容简介:前段趁着活动买了个腾讯云服务器,一直没抽时间去折腾,最近才开始部署了一个自己专属的git仓库,实现代码自动发布部署功能。(我也想成为努力向上,积极进取的有志青年啊!)文章的内容基本都是参考自谷歌搜索,然后按我的思路重新整理一遍,既是为了分享也是为了巩固知识。我也是第一次折腾服务器,前期部署就不写太详细了,装个git是必须的吧?(滑稽笑)添加git权限成员
前段趁着活动买了个腾讯云服务器,一直没抽时间去折腾,最近才开始部署了一个自己专属的git仓库,实现代码自动发布部署功能。(我也想成为努力向上,积极进取的有志青年啊!)文章的内容基本都是参考自谷歌搜索,然后按我的思路重新整理一遍,既是为了分享也是为了巩固知识。
我也是第一次折腾服务器,前期部署就不写太详细了,装个git是必须的吧?(滑稽笑)
创建git用户
# 创建git用户 adduser git 复制代码
添加git权限成员
# 创建/home/git/.ssh/authorized_keys 文件(通过这种方式能使拥有公钥的成员直接访问仓库) mkdir /home/git mkdir .ssh touch authorized_keys # 使用vim命令将公钥添加到authorized_keys文件里面 复制代码
生成公钥的方法可查看git官方文档
初始化仓库
创建一个存放git仓库的文件夹
mkdir /web/git cd /web/git 复制代码
初始化仓库
git init --bare website.git # 注意 这里有个坑 因为我们初始化的时候是处于root管理员状态,所以需要将这个仓库的文件权限设置为刚才创建的git用户 # 否则的话后面push将没有权限 chown -R git website.git 复制代码
git init正常初始化仓库会显示项目文件结构,里面存在.git文件夹。而这里添加--bare参数生成裸仓库,里面的项目文件结构隐藏,将正常方式初始化的.git里面文件结构暴露出来。
生成项目仓库
mkdir /web/www cd /web # 在这里,还是别忘了要给项目文件夹加上git用户操作权限 并打开www文件夹 chown -R git www && cd www # 将刚才初始化的裸仓库克隆到项目文件夹 git clone /web/git/website.git 复制代码
到这一步的时候代码仓库已经基本初始化完成了,接下来试试将仓库从线上克隆下来。
克隆仓库到本地
# 通过ip地址从配置好的线上仓库拉取下来 git clone git@118.24.217.XXX:/web/git/website.git # 如果有配置域名的话也可以通过域名拉取 git clone git@www.XXX.XXX:/web/git/website.git 复制代码
刚开始的时候因为已经添加了本地的密钥到线上git服务器,所以这一步是不需要密码的,直接能克隆下来。
创建文件并上传
# 打开刚才克隆下来的本地仓库 cd website # 创建README.md文件 touch README.md git add . git commit -am"创建README.md文件" git push 复制代码
啧啧 完美 到这一步的时候就上传成功了! 接下来就开始重头戏,我们需要设置git的post-receive钩子,在push成功的时候运行我们设置的一系列命令,进而达到自动编译更新线上代码。
添加post-receive钩子
回到线上服务器,我们打开/web/git/website.git/hooks文件夹。
# 生成post-receive文件 touch post-receive # 使用vim编辑 vim post-receive 复制代码
在post-receive文件输入我们的命令行命令
#!/bin/sh # 打印输出 echo '======上传代码到服务器======' # 打开线上项目文件夹 cd /web/www/gd168 # 这个很重要,如果不取消的话将不能在cd的路径上进行git操作 unset GIT_DIR git pull origin master # 自动编译vue项目 # npm run build echo $(date) >> hook.log echo '======代码更新完成======' 复制代码
保存后给post-receive文件加上运行权限
chmod +x post-receive 复制代码
搞定,现在试着修改下README.md文件,然后发布上去就能看到部署效果了。没毛病,妥妥的!
结语
大概是第一次写文章,怕大家看不明白,码文章的过程中还一步步重新走了遍流程,大概……应该……是写得很详细了吧(捂脸)。这些都是我遇到的坑,如果还有啥不妥的地方希望大家能够谅解,有什么不对或不够好的地方希望能联系我修改下,最怕耽误了你们宝贵的青春。带歪车就不好了,新手上路,嘿嘿。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 手摸手,带你实现代码自动部署
- 利用rpm打包上线部署golang代码的方法教程
- 使用Travis-ci自动SSH部署代码
- 如何将 GitHub 上的代码一键部署到服务器?
- NHMicro 1.1.7 发布,支持 MVC 各层代码热部署
- 大前端时代下的微前端架构:实现增量升级、代码解耦、独立部署
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。