jenkins部署前端vue项目使用Docker+Jenkinsfile方式

文章目录


前言

前面通过jenkins+docker的方式部署了若依前端vue项目,接下来接着学习使用Jenkinsfile的方式部署前端vue项目。


一、前提准备

已经安装好centos服务器,并且安装了jenkins和docker。gitee中新建工程,并且上传ruoyi-vue项目成功。

二、准备构建文件

打开ry-vue-ui前端项目,新建docker文件夹,新建Dockerfile、.dockerignore、nginx.conf三个配置文件。

Dockerfile镜像构建文件内容如下:

bash 复制代码
# 拉取nginx基础镜像
FROM nginx:1.21.1

# 维护者信息
MAINTAINER zhy

# 将dist文件中的内容复制到 `/usr/share/nginx/html/` 这个目录下面
COPY dist/  /usr/share/nginx/html/
# 用本地配置文件来替换nginx镜像里的默认配置
COPY nginx.conf /etc/nginx/nginx.conf

# 对外暴漏的端口号
# [注:EXPOSE指令只是声明容器运行时提供的服务端口,给读者看有哪些端口,在运行时只会开启程序自身的端口!!]
EXPOSE 80

# 启动nginx容器
CMD ["nginx", "-g", "daemon off;"]

.dockerignore忽略文件内容如下:

bash 复制代码
node_modules

nginx.conf配置文件内容如下:

bash 复制代码
worker_processes  1;



events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        # nginx 监听端口
        listen       80;
        # 服务器ip
        server_name  192.168.17.79;

        location / {
            # 前端资源存放路径
            root   /usr/share/nginx/html;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

在前端项目根目录新建Jenkinsfile

内容如下:

bash 复制代码
pipeline {
    agent any
    // 环境变量
    environment {
        // 名称
        APP_NAME = 'vue-web'
         // 环境
        APP_PROFILE = 'prod'
         // 镜像名称
        APP_IMAGE = 'ry-vue-web'
         // 端口
        APP_PORT = 99
    }

    stages {

        stage('vue环境准备') {
            steps {
                sh """
                cd ry-vue-demo-ui/
                # 下载依赖 & 构建dist
                sudo npm install && sudo npm run build:${APP_PROFILE}
                # 拷贝dist到Docker目录下
                cp -r dist docker/
                """
            }
        }

        stage('构建Docker镜像') {
            steps {
                sh """
                    # 删除旧容器
                    docker ps -a | grep ${APP_NAME} | awk '{print \$1}' | xargs -i docker stop {} | xargs -i docker rm {}
                    # 删除旧镜像
                    docker images | grep ${APP_NAME} | awk '{print \$3}' | xargs -i docker rmi {}
                    # 进入Docker目录
                    cd ry-vue-demo-ui/docker/
                    # 构建镜像
                    docker build -f Dockerfile -t ${APP_IMAGE} . --no-cache
                """
            }
        }

        stage('运行容器') {
            steps {
                sh """
                    docker run -d -p ${APP_PORT}:80 --restart=always --name ${APP_NAME} ${APP_IMAGE}
                """
            }
        }

    }
}

提交代码到gitee中

注意:以上文件内容涉及到的路径均需和你自己的路径匹配,不一致记得修改。

三、Jenkins中构建项目

打开jenkins新建任务,选择流水线项目

增加描述信息

流水线选择SCM

选择git

复制你gitee中的项目地址

粘贴到jenkins中,选择凭证和分支,没有凭证的话,点击添加自行添加gitee的用户凭证

然后保存,立即构建,可以查看控制台输出

我这里报错了,是因为在这个项目下没有找到Jenkinsfile文件,他可能有个检测机制

点击配置,修改Jenkinsfile的路径,因为我的Jenkinsfile是在前端工程下面,没有在整个项目下面,所以需要加前端项目路径。

保存,接着构建

构建成功,浏览器访问项目测试


总结

以上就是今天要讲的内容,本文介绍了jenkins部署使用Jenkinsfile文件部署前端vue项目,Jenkinsfile文件的作用就是把脚本命令放在文件中统一管理。

相关推荐
哆啦A梦158827 分钟前
axios 的二次封装
前端·vue.js·node.js
阿珊和她的猫35 分钟前
深入理解与手写发布订阅模式
开发语言·前端·javascript·vue.js·ecmascript·状态模式
yinuo44 分钟前
一行 CSS 就能搞定!用 writing-mode 轻松实现文字竖排
前端
snow@li1 小时前
html5:拖放 / demo / 拖放事件(Drag Events)/ DataTransfer 对象方法
前端·html·拖放
爱看书的小沐1 小时前
【小沐杂货铺】基于Three.js渲染三维风力发电机(WebGL、vue、react、WindTurbine)
javascript·vue.js·webgl·three.js·opengl·风力发电机·windturbine
浪裡遊3 小时前
Nivo图表库全面指南:配置与用法详解
前端·javascript·react.js·node.js·php
久曲健的测试窝3 小时前
Jenkins Share Library教程 —— 开发入门
运维·servlet·jenkins
罚时大师月色4 小时前
Vue+ts 如何实现父组件和子组件通信
javascript·vue.js·ecmascript
漂流瓶jz4 小时前
快速定位源码问题:SourceMap的生成/使用/文件格式与历史
前端·javascript·前端工程化
samroom4 小时前
iframe实战:跨域通信与安全隔离
前端·安全