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

相关推荐
hiahiahia12319 分钟前
Streaming Model Output
开发语言·前端
paopaokaka_luck20 分钟前
基于springboot+vue的益暖微光公益服务平台(DeepSeek公益助手、善款信息追溯、志愿服务积分闭环、ECharts运营分析、活动状态自动流转)
java·前端·javascript·spring boot·mysql·架构·echarts
栀椩30 分钟前
Electron 内嵌页面跨域问题(CORS/PNA)解决全记录
前端·javascript·electron
asaotomo35 分钟前
截图识题、AI 讲解、笔记沉淀:Chrome 扩展体验
前端·chrome·笔记
前端架构师-老李37 分钟前
HTML与CSS基础第五课—HTML的空格、换行、横线相关知识
前端·css·html
SEO_juper38 分钟前
Chrome 扩展一键查看当前页面 SEO 信息:不用切页面,点一下全出来
前端·javascript·chrome
Nymph_Zhu1 小时前
vue3+element-plus 文件上传
前端·typescript·vue3·element-plus
echome8881 小时前
CSS 布局:Flex 和 Grid 怎么选,附常见坑
前端·css·html
计算机魔术师1 小时前
科技巨头砸7400亿押注AI,为什么苹果成了唯一赢家?
前端
QianhangQianping1 小时前
撤销重做不是「存快照」:一个可视化编辑器的Operation 设计
java·前端·数据库·typescript·编辑器·前端架构·撤销重做