资讯专栏INFORMATION COLUMN

从头开始搭建网站(五)- 使用 git 自动部署

lavor / 1522人阅读

摘要:导语终于到了最后的步骤,使用同步并且自动部署代码。添加用户添加用户禁止用户使用登录。经过几天的使用,发现一个问题。

导语

终于到了最后的步骤,使用 git 同步并且自动部署代码。

添加用户

添加 git 用户

禁止 git 用户使用 shell 登录。编辑 /etc/passwd,将 git:x:1001:1001::/home/git:/bin/bash 修改为 git:x:1001:1001::/home/git:/usr/bin/git-shell

参考之前的文章,设置免密

添加进用户组 sudo usermod -aG docker git

建立裸仓库

建立一个目录 library,用作仓库

library 中初始化一个裸仓库 sudo git init --bare you_project_name.git

设置所有者为 git 用户 sudo chown -R git:docker library

设置权限为同组可写入 sudo chmod -R g+w library

项目目录链接 git

同样设置权限为同组可写入并设置所有者

sudo chmod -R g+w you_project_path

sudo chown -R user:docker you_project_path

在代码目录中,初始化 git,git init

添加所有文件,git add .

提交 git commit -m "init"

将代码与远端仓库建立连接,git remote add origin /library/you_project_name.git

push 代码,git push origin master

设置分支跟踪 git branch --set-upstream-to=origin/master master

本地同步代码

本地直接 clone git clone git@you_server:/library/you_project_name.git

本地也是 laradock,同样的流程,进入 workspace 容器中安装项目

composer install

cp .env.example .env

php artisan key:generate

配置 nginx 域名和本地 hosts,然后重启 nginx docker-compose restart nginx

然后就是正常的 git 操作

设置 git hook

最后一步,设置 hook,自动部署。

在服务器 /library/you_project_name.git/hooks 目录下编辑 post-update 如下

#! /bin/sh
unset GIT_DIR
DIR_ONE=you_project_path/ #你的项目目录
cd $DIR_ONE
git pull origin master

以上是最初版本。经过几天的使用,发现一个问题。使用 git 用户进行自动部署,项目目录的文件所属者会变成 git(虽然不影响代码运行),所以在 pull 之后重新设置了所属者以及权限(git 用户需要无密码使用 sudo,可参考前文),最终如下

#! /bin/sh
unset GIT_DIR
DIR_ONE=you_project_path/ #你的项目目录
cd $DIR_ONE
git pull
sudo chown -R user:docker $DIR_ONE
sudo chmod -R g+w $DIR_ONE

设置所有者 sudo chown git:docker post-update

设置权限 sudo chmod +x post-update

结语

终于完成了。过程不算顺利,但总是比之前好多了。剩下的就是写代码了。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/46229.html

相关文章

  • 从头开始搭建网站)- 使用 git 自动部署

    摘要:导语终于到了最后的步骤,使用同步并且自动部署代码。添加用户添加用户禁止用户使用登录。经过几天的使用,发现一个问题。 导语 终于到了最后的步骤,使用 git 同步并且自动部署代码。 添加用户 添加 git 用户showImg(https://segmentfault.com/img/bVbrnn1?w=1394&h=1128); 禁止 git 用户使用 shell 登录。编辑 /et...

    URLOS 评论0 收藏0
  • 从头开始搭建网站(三)- 使用 docker 安装 laradock

    摘要:导语本篇是使用安装。是为提供的完整本地开发环境,和一样提供了一系列打包好包括配置的。更多内容可参考原文。使用将代码克隆下来进入目录后,根据自己情况进行修改文件。因为我本地的开发环境也是,所以将本地的复制到服务器中。 导语 本篇是使用 docker 安装 laradock。 Laradock 是为 Docker 提供的完整 PHP 本地开发环境,和 Homestead 一样提供了一系列打...

    mindwind 评论0 收藏0
  • 从头开始搭建网站(三)- 使用 docker 安装 laradock

    摘要:导语本篇是使用安装。是为提供的完整本地开发环境,和一样提供了一系列打包好包括配置的。更多内容可参考原文。使用将代码克隆下来进入目录后,根据自己情况进行修改文件。因为我本地的开发环境也是,所以将本地的复制到服务器中。 导语 本篇是使用 docker 安装 laradock。 Laradock 是为 Docker 提供的完整 PHP 本地开发环境,和 Homestead 一样提供了一系列打...

    Eric 评论0 收藏0
  • 从头开始搭建网站(三)- 使用 docker 安装 laradock

    摘要:导语本篇是使用安装。是为提供的完整本地开发环境,和一样提供了一系列打包好包括配置的。更多内容可参考原文。使用将代码克隆下来进入目录后,根据自己情况进行修改文件。因为我本地的开发环境也是,所以将本地的复制到服务器中。 导语 本篇是使用 docker 安装 laradock。 Laradock 是为 Docker 提供的完整 PHP 本地开发环境,和 Homestead 一样提供了一系列打...

    Kosmos 评论0 收藏0
  • 优化hexo访问速度-将hexo部署到云主机VPS

    摘要:写在开始一开始将自己部署到,结果发现打开页面速度有点慢,然后又将其同时部署到实现双线路访问,国内解析记录到,国外解析到,这样确实网站的速度能提高不少,但是国内访问因为是经过,所以打开网站会有广告,这点不能容忍,于是想到自己的服务器也还空闲着 写在开始 一开始将自己hexo部署到github,结果发现打开页面速度有点慢,然后又将其同时部署到coding,实现双线路访问,国内解析记录到co...

    yhaolpz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<