乐趣区

gitlab安装自动部署laravel项目

gitlab 安装

使用 docker 安装 gitlab

1:docker pull gitlab/gitlab-ce
2:docker run -d  -p 4438:443 -p 8088:80 -p 2228:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
3:/var/opt/gitlab/gitlab-rails/etc/gitlab.yml 在容器里修改文件 host
4:gitlab-ctl restart 重启 

在宿主机安装 gitlab-runner 用 docker 安装踩了很多坑,因为内网物理服务器限制无法本地访问

ssh 免密登录
//  切换到 gitlab-runner
su gitlab-runner
// 生成公私钥
ssh-keygen
// 本地主机的公钥复制到远程主机的 authorized_keys 文件上,ssh-copy-id -i /home/gitlab-runner/.ssh/id_rsa.pub root@172.17.0.1 (172.17.0.1 宿主机 ip,docker 网络 ip;ip addr)

laravel 项目自动构建 yml 文件

    stages:
  - develop

develop:
  stage: develop
  cache:
    paths:
      - vendor/
  tags:
    - develop
  script:
    - composer install
    - cp .env.example .env
    - php artisan key:generate
    - php artisan migrate
    - rsync -arvp -e "ssh" --rsync-path="sudo rsync" --delete-before . root@172.17.0.1:/xxx/xxxx/blog/
    - ssh root@172.17.0.1  "cd /xxx/xxx/blog && php artisan config:cache && supervisorctl restart all"
  only:
    - develop
  • php artisan config:cache // 这个命令要放到代码同步后,否则会缓存配置文件,导致路径不一致
  • supervisorctl restart all 如果有队列任务是用 supervis 来管理,需要重启
退出移动版