【Gitlab+Windows Server】CI/CD实现自动化部署vue+springboot项目(若依前后端分离)到Windows Server服务器

原先的项目,在本地跑通后,需要开发人员手动打包。然后上传到服务器,重启项目服务。这部分的工作非常的繁琐。好在有了jenkins或者gitlab-ci这些自动化的工具。只要配置好。之后的项目开发就不用操心众多的繁琐部署步骤了。

由于开发习惯问题,我的项目正式环境并不是linux,并且学习gitlab过程中,发现大多数的文章都是以linux系统为例,所以我主要研究在windows server中的实现。算是补全生态吧。

一. 部署gitlab

我在腾讯云上买了一年80块的最低配置的linux云服务器做个人鼓捣用。当然阿里云也可以了,甚至本地的电脑也能当作gitlab的服务器。

部署方式相对简单,在宝塔面板上直接搜索 gitlab下载安装,我安装的版本是8.8.5(注意,后续的gitlab-runner.exe需要下载1.x版本,和gitlab配对,不然总是会注册失败)

部署完进入gitlab网址,注册号账号后,新建一个项目vue,点项目的设置,保存这两个值。

二.安装gitlab-runner

下载安装包 1.10.4 (注意:最新版本和gitlab 8.8.5不匹配,要下载较老的版本)https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v1.10.4/binaries/gitlab-ci-multi-runner-windows-amd64.exe

用远程工具进入正式项目的服务器。在C盘新建Gitlab-Runner文件夹,把安装包改名为gitlab-runner.exe放进去(不改也行,主要是原名太长了)。

1.打开cmd,cd到Gitlab-Runner。

2. 执行 .\gitlab-runner.exe install

3.执行 .\gitlab-runner.exe register 。这时候会提示你填写链接和授权码,把上面保存好的数据依次填进去。

4. 选择执行器的环境,由于我的项目没有用到docker,所以选的是shell。 还有提示你填写标签和备注什么的,这个随便填,后续也可以在生成的toml文件中改。

5. 启动runner : ./gitlab-runner.exe start

三.编写配置文件

这时候回到gitlab网页,项目中应该就能看到有一个可用的runner了。

  1. vue项目

首先项目服务器要先安装node/npm等工具用来打包,最好和开发环境的版本号一致,不然可能出奇怪的问题

接下来在vue项目的目录中新建 gitlab-ci.yml文件

填写以下内容:

build:
    stage: build #标签,表示当前流水线处于哪个阶段
    only:
        - master   #只有推送到master分支才执行
    script:
        - npm run build:prod      #编译
        - $CONFIG_PATH="C:\test\admin"
        - $TRUE_FALSE=(Test-Path $CONFIG_PATH)
        - echo $TRUE_FALSE
        - if($TRUE_FALSE -eq "True"){ remove-Item -Recurse -Force $CONFIG_PATH }
        - Copy-Item admin C:/test -Recurse -Force   #把打包好的文件转移到项目所在的文件夹中

然后推送git到master分支。在gitlab页面上可以上看到runner的执行情况。一般情况下,就能正常执行了。

  1. springboot项目

在springboot项目的目录中新建 gitlab-ci.yml文件

填写以下内容:

variables:
  TARGET: ruoyi-admin/target/ruoyi-admin.jar  #定义一个变量,jar包的路径,方便后面用

build: #编译
  stage: build
  only:
    - master
  script:
    #-P prod 是打包的时候识别 application-prod.yml文件,如果没有区分prod/local/dev之类,可以不写
    - mvn clean package -P prod   #执行maven打包,
    - $CONFIG_PATH="C:\test\ruoyi-admin.jar"
    - $TRUE_FALSE=(Test-Path $CONFIG_PATH)
    - if($TRUE_FALSE -eq "True"){ remove-Item -Recurse -Force $CONFIG_PATH }
     #把打包好的文件转移到项目所在的文件夹中
    - Copy-Item ruoyi-admin/target/ruoyi-admin.jar C:/test -Recurse -Force   
    - cd C:/dali
    - C:/dali/run.bat #重启服务

四:踩坑

1.windows里面 执行 bat文件或者指令java -jar xxx.jar 的话。gitlab-runner会把启动的jar服务当作运行中的runner程序,所以状态一直是running运行中。如果推下一次的话,永远在排队。所以要换一种部署的方式。

使用winsw把jar注册为服务。

run.bat里面的语句改为

winsw.exe restart
2.git提交spring-boot报
The term 'mvn' is not recognized as the name of a cmdlet

原因是maven没有安装,安装完,配置到系统环境变量后。重启gitlab-runner.exe,再次提交。

3.git提交vue项目报
The term 'git' is not recognized as the name of a cmdlet, function, script file, or operable program

是因为git没有安装

4.gitlab中的runner控制台出现乱码 � 这类,要到服务器的控制面板设置编码为utf-8。设置完重启就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当然,我可以为您提供一个详细教程来帮助您部署Vue+SpringBoot前后端分离项目到云服务器上使用Docker。 首先,确保您已经完成以下准备工作: - 注册一个云服务提供商的账号,并创建一个云服务器实例。 - 在本地环境中安装了Docker,并熟悉Docker的基本操作。 - 本地已经安装了Node.js和npm,以及Vue CLI和Java开发环境。 以下是详细的步骤: 1. 登录到云服务器: 使用SSH工具连接到您的云服务器。例如,使用命令行工具执行以下命令: ``` ssh username@server_ip_address ``` 2. 安装Docker: 根据您的云服务器的操作系统,选择对应的安装方式进行Docker安装。以下是一些常见操作系统的安装命令: - Ubuntu: ``` sudo apt-get update sudo apt-get install docker.io ``` - CentOS: ``` sudo yum update sudo yum install docker ``` 3. 验证Docker安装是否成功: 执行以下命令来验证Docker是否已经成功安装: ``` docker version ``` 4. 构建Vue项目: 在本地开发环境中,使用Vue CLI创建Vue项目,并进行开发和测试。确保项目可以正常运行。 ``` vue create myproject cd myproject npm run serve ``` 5. 打包Vue项目: 在Vue项目根目录下执行以下命令,将Vue项目打包成静态文件。 ``` npm run build ``` 6. 创建SpringBoot项目: 使用Spring Initializr创建SpringBoot项目,并进行开发和测试。确保项目可以正常运行。 - 访问Spring Initializr网站:https://start.spring.io/ - 选择项目的基本设置,如使用的编程语言、构建工具、Spring Boot版本等。 - 添加所需的依赖项,如Spring Web、Spring Data JPA等。 - 点击"Generate"按钮下载生成的SpringBoot项目压缩包。 - 解压缩项目压缩包,并使用您喜欢的集成开发环境(IDE)打开项目。 7. 创建Dockerfile: 在SpringBoot项目的根目录下创建一个名为`Dockerfile`的文件,用于定义Docker镜像的构建步骤。在`Dockerfile`中添加以下内容: ``` FROM openjdk:8-jdk-alpine VOLUME /tmp ADD target/myproject.jar app.jar ENTRYPOINT ["java", "-jar", "/app.jar"] ``` 8. 构建Docker镜像: 在SpringBoot项目的根目录下执行以下命令,构建Docker镜像: ``` docker build -t myproject . ``` 9. 运行Docker容器: 执行以下命令,在Docker中运行SpringBoot项目的Docker容器: ``` docker run -d -p 80:8080 myproject ``` 10. 访问应用: 使用浏览器访问您的云服务器的公网IP地址,即可查看部署好的前后端分离项目。 希望这个详细教程能够帮助您成功部署Vue+SpringBoot前后端分离项目到云服务器上使用Docker。如果您有任何问题,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值