Jenkins自动化部署SpringCloud+Vue+Nuxt

Jenkins自动化部署SpringCloud+Vue+Nuxt

一、安装java

①下载JDK:官方下载地址
上传到服务器解压,配置下面内容

配置环境变量

说明:/etc/profile文件为(linux)系统的每个用户设置环境变量信息,此文件的修改会影响到所有用户。

vim etc/profile
export JAVA_HOME=[jdk安装路径]
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

source一下可以让文件立即生效

source /etc/profile

查看是否安装成功

java -version
二、安装maven

①下载maven:官方下载地址
上传到服务器解压,配置下面内容
在这里插入图片描述

配置settings.xml(路径:apache-maven-3.8.5/conf)
<localRepository>/home/maven/jarstore</localRepository>
    <mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <url>https://maven.aliyun.com/repository/central</url>
        <name>aliyun maven</name>
    </mirror>
    <mirror> 
        <id>alimaven</id> 
        <name>aliyun maven</name> 
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
        <mirrorOf>central</mirrorOf> 
    </mirror>

本地仓库和阿里镜像源

export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH 
配置环境变量
vim etc/profile
export MAVEN_HOME=[maven安装路径]
export PATH=$MAVEN_HOME/bin:$PATH 

/home/maven/apache-maven-3.8.5 记录一下我的路径

source /etc/profile

查看是否安装成功

mvn -version
三.安装Git

方法一:官网教程
方法二:下载Git:Git仓库,安装步骤:在Linux系统上安装Git

记录一下用到的命令

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
make prefix=/home/git/git-2.35.1 all
make prefix=/home/git/git-2.35.1 install
配置环境变量
vim etc/profile
export PATH=$PATH:/usr/local/git/bin
source /etc/profile

查看是否安装成功

git --version
四、安装Docker
五、安装Jenkins

下载jenkins:官方下载
上传war包,在war包路径下执行

java -jar jenkins.war --httpPort=8080 & 
#如果要在后台运行,关闭控制台还能运行,则启动命令改为:
nohup java -jar jenkins.war --httpPort=8080 &

http访问jenkins端口

加载完查看密码,记得保存一下密码,等下可能还用。

cat /root/.jenkins/secrets/initialAdminPassword

更新源

cd /root/.jenkins/updates #进入更新配置位置

输入命令修改default.json,修改完后刷新。

sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

根据需求选择安装,不懂就选第一个
在这里插入图片描述
在这里插入图片描述
配置依赖
在这里插入图片描述

maven

在这里插入图片描述
在这里插入图片描述

jdk

在这里插入图片描述

git

在这里插入图片描述

node.js

在这里插入图片描述

基本都是安装路径

六、自动化部署项目
springcloud

在每一个项目(模块)中添加文件Dockerfile

#FROM java:8
FROM openjdk:8-jdk-alpine
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar", "app.jar", "-Xms32M -Xmx32M -XX:PermSize=32M -XX:MaxPermSize=64M"]

在这里插入图片描述
在项目pom文件添加打包类型(父项目pom、要运行的jar【根据情况】)和maven插件

<packaging>jar</packaging>
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <repository>${project.artifactId}</repository>
                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>
        </plugins>
        <!--在有数据库的微服务pom里面加上这个,没有就删掉-->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>
    </build>

添加git凭证(gitee/git的用户名密码)
在这里插入图片描述

添加一个流水线项目
在这里插入图片描述
在这里插入图片描述

如果没有定义,就是插件没安装
在这里插入图片描述
在总项目目录(git拉取的目录)下添加Jenkinsfile(同名)
在这里插入图片描述

在这里插入图片描述

//git凭证ID
def git_auth = "jenkins git凭证(看下面图片)"
//git的url地址
def git_url = "git仓库"
//git分支
def branch = "master"
//镜像的版本号
def tag = "latest"

node {
    stage('拉取代码') {
      checkout([$class: 'GitSCM', branches: [[name: "*/${branch}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_url}"]]])
    }
    //下面的内容根据需求改
    stage('编译,zqy-springCloud') {
      sh "mvn -f zqy-springCloud clean install"
    }
    stage('编译,zqy-common') {
      sh "mvn -f zqy-springCloud/zqy-common clean install"
    }
    stage('编译,zqy-advert') {
      sh "mvn -f zqy-springCloud/zqy-advert clean package dockerfile:build"
    }
    stage('编译,zqy-dict') {
      sh "mvn -f zqy-springCloud/zqy-dict clean package dockerfile:build"
    }
    stage('编译,zqy-elasticsearch') {
      sh "mvn -f zqy-springCloud/zqy-elasticsearch clean package dockerfile:build"
    }
    stage('编译,zqy-gateway') {
      sh "mvn -f zqy-springCloud/zqy-gateway clean package dockerfile:build"
    }
    stage('编译,zqy-member') {
      sh "mvn -f zqy-springCloud/zqy-member clean package dockerfile:build"
    }
    stage('编译,zqy-oss') {
      sh "mvn -f zqy-springCloud/zqy-oss clean package dockerfile:build"
    }
    stage('编译,zqy-works') {
      sh "mvn -f zqy-springCloud/zqy-works clean package dockerfile:build"
    }
}

在这里插入图片描述
再创建一个自由风格的任务
在这里插入图片描述
在这里插入图片描述

imageId=`docker ps -a| grep zqy-advert | awk '{print $1}'`
if [ "$imageId" !=  "" ] ; then
    #停掉容器
    docker stop $imageId
    #删除容器
    docker rm $imageId
	
	echo "成功删除容器"
fi
docker run -di -m 300M --name zqy-advert -p 7004:7004 zqy-advert

imageId=`docker ps -a| grep zqy-dict | awk '{print $1}'`
if [ "$imageId" !=  "" ] ; then
    #停掉容器
    docker stop $imageId
    #删除容器
    docker rm $imageId
	
	echo "成功删除容器"
fi
docker run -di -m 300M --name zqy-dict -p 7003:7003 zqy-dict

imageId=`docker ps -a| grep zqy-elasticsearch | awk '{print $1}'`
if [ "$imageId" !=  "" ] ; then
    #停掉容器
    docker stop $imageId
    #删除容器
    docker rm $imageId
	
	echo "成功删除容器"
fi
docker run -di -m 400M --name zqy-elasticsearch -p 7006:7006 zqy-elasticsearch

imageId=`docker ps -a| grep zqy-gateway | awk '{print $1}'`
if [ "$imageId" !=  "" ] ; then
    #停掉容器
    docker stop $imageId
    #删除容器
    docker rm $imageId
	
	echo "成功删除容器"
fi
docker run -di -m 200M --name zqy-gateway -p 7777:7777 zqy-gateway

imageId=`docker ps -a| grep zqy-member | awk '{print $1}'`
if [ "$imageId" !=  "" ] ; then
    #停掉容器
    docker stop $imageId
    #删除容器
    docker rm $imageId
	
	echo "成功删除容器"
fi
docker run -di -m 400M --name zqy-member -p 7002:7002 zqy-member

imageId=`docker ps -a| grep zqy-oss | awk '{print $1}'`
if [ "$imageId" !=  "" ] ; then
    #停掉容器
    docker stop $imageId
    #删除容器
    docker rm $imageId
	
	echo "成功删除容器"
fi
docker run -di -m 300M --name zqy-oss -p 7005:7005 zqy-oss

imageId=`docker ps -a| grep zqy-works | awk '{print $1}'`
if [ "$imageId" !=  "" ] ; then
    #停掉容器
    docker stop $imageId
    #删除容器
    docker rm $imageId
	
	echo "成功删除容器"
fi
docker run -di -m 400M --name zqy-works -p 7001:7001 zqy-works

到这里了可以开始构建(执行流水线任务)了。

在这里插入图片描述

构建如果报错,只能逐个排查解决了。

查看运行状态

docker stats

在这里插入图片描述

七、部署前端

安装插件
在这里插入图片描述

vue

新增一个自由风格的项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其实就是让Jenkins自动化执行一些Linux命令

npm install --prefix ./zqy-admin
rm -rf ./zqy-admin/dist/*
npm run build:prod --prefix ./zqy-admin
rm -rf /home/www/zqy-admin/*
cp -rf ./zqy-admin/dist/* /home/www/zqy-admin

开始构建,构建完后后面根据路径通过nginx反向代理

nuxt

新增一个自由风格的项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装pm2(常用命令

npm install pm2 -g

通过pm2运行守护线程

npm install --prefix ./zqy-front
npm run build --prefix ./zqy-front
pm2 --name=zqy-front start ./zqy-front npm -- run start --prefix ./zqy-front
pm2 start npm --name 'zqy-front' -- run start

–prefix 指定目录
–name package.json的name

开始构建,构建完后后面根据路径通过nginx反向代理,查看pm2进程

pm2 list

在这里插入图片描述
参考链接(感谢大佬)
SpringCloud+Jenkins+Docker持续部署积木学堂[谷粒学院]
在服务器上部署nuxt项目

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值