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文件的作用就是把脚本命令放在文件中统一管理。

相关推荐
街尾杂货店&1 小时前
css - 实现三角形 div 容器,用css画一个三角形(提供示例源码)简单粗暴几行代码搞定!
前端·css
顺凡1 小时前
删一个却少俩:Antd Tag 多节点同时消失的原因
前端·javascript·面试
小白路过1 小时前
CSS transform矩阵变换全面解析
前端·css·矩阵
爬山算法1 小时前
Redis(110)Redis的发布订阅机制如何使用?
前端·redis·bootstrap
REDcker2 小时前
前端打包工具 - Rollup 打包工具笔记
前端·笔记
前端大卫2 小时前
动态监听DOM元素高度变化
前端·javascript
前端大卫2 小时前
Webpack 老项目的优化实践
前端
开利网络2 小时前
合规底线:健康产品营销的红线与避坑指南
大数据·前端·人工智能·云计算·1024程序员节
yinuo2 小时前
纯CSS&JS实现:丝滑渐变过渡的动态导航栏
前端
qq. 28040339842 小时前
vue介绍
前端·javascript·vue.js