首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用白薅来的gitlab自带的gitlab-runner部署一个vue项目

用白薅来的gitlab自带的gitlab-runner部署一个vue项目

作者头像
一只牛博
发布于 2025-05-31 02:18:36
发布于 2025-05-31 02:18:36
12300
代码可运行
举报
运行总次数:0
代码可运行

@[TOC](用白薅来的gitlab自带的gitlab-runner部署一个vue项目) ## 前戏

最近学习 GitLab 中的 CI/CD 过程考虑中,配置 GitLab Runner 时遇到一些困难。到服务器配置较低,搭建项目环境(如 Node.js、Maven 等)会带来额外的负担。这个过程可能会增加部署的复杂度和时间成本,对于服务器资源有限的情况极为明显。因此,优化这一流程是至关重要的。

我是换了各种姿势但是最终还是认为再加一台服务器比较靠谱,在日常的生产环境中我也是这样认为的,如果在资源充足的情况下最少配置两台服务器,配置两个gitlab-runner,一个用来deploy,一个用来build。抱着这个想法,最终有了白嫖这个行动。

重头戏

gitlab提供了很多个实例运行器,其中有小的arm的还有docker的,各种类型的runner。

在上面的基础上我就有了大胆的想法,直接用gitlab提供的runner(这里一定要注意,首先它不一定安全,其次它应该是一个纯净版的,所以在使用的时候就用不了cache,以及本地maven仓库的jar。),自己的项目,或者说用来测试的,感觉都是一个不错的选择。

正戏

首先我们根据前戏中的想法,让gitlab提供的gitlab-runner来做build,自己的服务器只做部署操作,于是就有了下面的.gitlab-ci.yml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
stages:
  - build
  - deploy

# 构建阶段
build:
  stage: build
  image: node:16  # 使用 Node.js 14 镜像作为构建环境
  script:
    - npm install  # 安装项目依赖
    - npm run build  # 执行构建命令,生成静态文件
  artifacts:
    paths:
      - public/  # 将构建好的静态文件作为 artifacts,以供后续阶段使用
  tags:
    - saas-linux-small-amd64
# 部署阶段
deploy:
  stage: deploy
  only:
    - master  # 只有在 master 分支发生变更时才执行部署
  script:
    - cp -r public/* /home/vueProject/my_log/public
    - sudo /usr/local/nginx/sbin/nginx -s reload
  tags:
    - acowbo

这里重点关注tags,我们进行了指定,build指定saas-linux-small-amd64,而deploy指定为acowbo也就是自己服务器部署的gitlab-runner。

image-20240511093352253
image-20240511093352253

至此我们的配置还没有结束

收拾残局

在部署vue项目中,我们可以选择部署到Tomcat也可以选择部署到nginx,这里我选的是nginx,但是执行命令的是gitlab-runner这个用户。所以我们要看执行的命令是否属于gitlab-runner用户或用户组。如果权限不够,我们可以执行以下命令来解决

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chown -R gitlab-runner:gitlab-runner /usr/local/nginx/logs/error.log

加餐方法如下:

  1. 执行sudo visudo
  2. 加入如下gitlab-runner ALL=(ALL) NOPASSWD: /usr/local/nginx/sbin/nginx -s reload,这个可以确保你可以用sudo的方式执行此命令

成果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于gitlab gitlab-runner的cicd部署
在本文中,我将介绍如何基于 GitLab 和 GitLab Runner 进行 CI/CD 部署。GitLab 是一个强大的 Git 仓库管理系统,提供了完整的 CI/CD 管理功能。GitLab Runner 是一个用于运行 CI/CD 作业的轻量级容器化工具。我们将使用 Docker 容器来运行 GitLab 和 GitLab Runner。
堕落飞鸟
2023/03/27
1.7K0
Docker安装Gitlab和Gitlab-Runner并实现项目的CICD
介绍如何在Linux系统使用Docker安装Gitlab、Gitlab-Runner并实现项目的CICD
薛定喵君
2019/11/05
3K0
gitlab-runner中搭建nvm、nrm以及优化maven打包
因为gitlab-runner作为服务器的一个用户,所以它是不能具备所有root权限的,对于nvm、nrm也是,除非将其安装到非~目录下
一只牛博
2025/05/31
1090
gitlab-runner中搭建nvm、nrm以及优化maven打包
GitLab Runner安装注册配置管理
GitLab Runner是一个开源项目,用于运行您的作业并将结果发送回GitLab。它与GitLab CI结合使用,GitLab CI是GitLab随附的用于协调作业的开源持续集成服务。
DevOps云学堂
2020/05/08
7.8K0
GitLab Runner安装注册配置管理
Docker搭建自己的Gitlab CI Runner
哎_小羊
2018/01/02
15.3K0
Docker搭建自己的Gitlab CI Runner
gitlab-runner安装配置
@凌晨
2023/11/17
5330
gitlab-runner安装配置
Golang基于Gitlab CI/CD部署方案
持续集成 (Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
李海彬
2018/12/24
1.6K0
Gitlab-ci:从零开始的前端自动化部署
(1) 通过在项目根目录下配置**.gitlab-ci.yml**文件,可以控制ci流程的不同阶段,例如install/检查/编译/部署服务器。gitlab平台会扫描.gitlab-ci.yml文件,并据此处理ci流程
Nealyang
2020/09/01
2.1K0
如何使用gitlab自带的CICD
上次分享了gitlab+jenkins实现CICD,前提我们需要安装一个jenkins。其实高版本的gitlab已经具备CICD功能,笔者使用的版本是:GitLab 社区版 11.4.10
全栈程序员站长
2022/09/05
6050
Ubuntu18注册gitlab-runner并激活CI/CD
打开 gitlab 项目 -> 设置 -> CI / CD -> Runners 设置,获取令牌
用户8851537
2021/08/04
1.2K0
Java|用 GitLab CI 进行持续集成:简介一些概念GitLab Runner.gitlab-ci.yml
从 GitLab 8.0 开始,GitLab CI 就已经集成在 GitLab 中,我们只要在项目中添加一个 .gitlab-ci.yml 文件,然后添加一个 Runner,即可进行持续集成。 而且随着 GitLab 的升级,GitLab CI 变得越来越强大,本文将介绍如何使用 GitLab CI 进行持续集成。
黄小怪
2018/12/24
2.5K0
使用 GitLab Runner
理解了上面的基本概念之后,有没有觉得少了些什么东西 —— 由谁来执行这些构建任务呢? 答案就是 GitLab Runner 了!
用户8851537
2021/08/04
3K0
使用私有gitlab搭建gitbook持续集成
在项目实践中,团队需要对用到的知识技术进行总结,即便于分享,也利于传承,而gitbook就是个不错的选择,使用gitbook-cli 对Markdown文档进行编译,生成静态文件,再通过web服务器(e.g. nginx)对外提供服务。
DevOps在路上
2023/05/16
1.1K0
使用私有gitlab搭建gitbook持续集成
Golang基于Gitlab CI/CD部署方案
持续集成 (Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
李海彬
2018/09/29
3K0
Golang基于Gitlab CI/CD部署方案
Gitlab CI 搭建持续集成环境
在软件工程里,持续集成(Continuous Integration, CI)是指这样的一种实践:在一天里多次将所有开发人员的代码合并到一个共享的主干里,每次合并都会触发持续集成服务器进行自动构建,这个过程包括了编译、单元测试、集成测试、质量分析等步骤,结果只有两个:成功或者失败。如果得到失败的结果,说明有人提交了不合格的代码,这就能及时发现问题。
YP小站
2020/06/04
2.9K0
Gitlab CI 搭建持续集成环境
Gitlab-runner的CI与CD
这一篇,我们介绍一下使用Gitlab-runner进行持续集成与部署,经过以往的经验,我们使用Jenkins的时候,会在jenkins中安装一系列的开发环境包,比如:
公众号: 云原生生态圈
2021/11/15
1.1K0
Gitlab-runner的CI与CD
gitlab实现CICD的实战过程
目前的现状,开发者在提交代码后还需要去构建镜像,上传镜像到镜像仓库,频繁的修改就需要频繁的构建。
用户10002156
2024/01/03
4760
gitlab实现CICD的实战过程
gitlab ci/cd 多项目流水线制品合并方案
首先需要在linux上安装 gitlab-runner 然后注册一个shell作为执行器的runner 该runner将应用于需要构建的项目
拿我格子衫来
2022/01/24
9680
gitlab ci/cd 多项目流水线制品合并方案
微服务项目部署实践:使用Gitlab Runner实现微服务项目的持续集成,持续交付和持续部署
概念 服务治理遇到的问题 在微服务项目中每个服务都是独立运行的项目 不可能对每个项目进行手动部署,涉及到自动化运维的问题 持续集成 持续集成(Continues Integration,简称CI) 持续集成指的是,频繁(一天多次)地将代码集成到主干,优点有两个: 快速发现错误: 每完成一点更新, 就集成到主干,可以快速发现错误,定位错误 防止分支大幅偏离主题: 如果不是经常集成,主干又在不断更新,会导致以后集成难度变大,甚至难以集成 持续集成强调:开发人员提交了新的代码之后,立即进行构建,(单元)测试,
攻城狮Chova
2022/01/22
1.6K0
微服务项目部署实践:使用Gitlab Runner实现微服务项目的持续集成,持续交付和持续部署
1.基于GitLab代码仓库的持续集成基础配置和使用
[TOC] 0x00 前言简述 CI/CD介绍 Q:我们常说的CI/CD是什么? CI 为 Continuous Integration 的缩写持续集成,可以理解为代码变动提交后,自动执行代码编译、代
全栈工程师修炼指南
2022/09/29
4.1K0
1.基于GitLab代码仓库的持续集成基础配置和使用
相关推荐
基于gitlab gitlab-runner的cicd部署
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验