手摸手带你部署git服务器实现自动发布代码

栏目: 编程工具 · 发布时间: 7个月前

来源: juejin.im

本文转载自:https://juejin.im/post/5bfbe6ee6fb9a049b07d0754,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。

前段趁着活动买了个腾讯云服务器,一直没抽时间去折腾,最近才开始部署了一个自己专属的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文件,然后发布上去就能看到部署效果了。没毛病,妥妥的!

手摸手带你部署git服务器实现自动发布代码

结语

大概是第一次写文章,怕大家看不明白,码文章的过程中还一步步重新走了遍流程,大概……应该……是写得很详细了吧(捂脸)。这些都是我遇到的坑,如果还有啥不妥的地方希望大家能够谅解,有什么不对或不够好的地方希望能联系我修改下,最怕耽误了你们宝贵的青春。带歪车就不好了,新手上路,嘿嘿。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

为你推荐:

相关软件推荐:

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

自己动手做iOS App

自己动手做iOS App

张子怡 / 电子工业出版社 / 2017-8 / 69.00

《自己动手做iOS App:从设计开发到上架App Store》为想要接触iOS 应用设计、开发的读者提供了由浅入深的详细指导。从iOS 应用制作的步骤是什么,应该使用什么软件,如何发布应用到App Store,到iOS 的设计理念是什么,如何正确书写Swift 语言,再到后端和客户端是如何交互运作的等,本书配合图示,精辟、直观地阐明了iOS 应用制作中的种种疑问。 如果你是一位第一次接触i......一起来看看 《自己动手做iOS App》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换