Jenkins利用docker部署vue项目

2023-05-16

Jenkins利用docker部署vue项目

  • 一、环境准备
    • 1、安装docker
    • 2、安装nodejs
    • 3、安装cnpm与配置淘宝镜像
    • 4、jenkins安装nodejs插件
  • 二、jenkins以vue项目
    • 1、全局参数配置
    • 2、源码配置
    • 3、构建环境
    • 4、构建
  • 三、构建项目
  • 四、访问

一、环境准备

本次jenkins与部署vue项目在同一台机器,如果不在同一台机器,可以使用Publish Over SSH解决,参考下文
Jenkins部署Git中的Springboot项目(二)

1、安装docker

Centos安装Docker

2、安装nodejs

下载地址:

# 查找自己所需要的版本
https://nodejs.org/dist/latest/
下载
wget https://nodejs.org/dist/latest-v16.x/node-v16.19.1-linux-x64.tar.gz
tar -zxvf node-v16.19.1-linux-x64.tar.gz
# 配置环境变量
vim /etc/profile
# 路径需要自己更换
export PATH=/opt/button/nodejs/node-v16.19.1-linux-x64/bin:$PATH
source /etc/profile

3、安装cnpm与配置淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

在这里插入图片描述

4、jenkins安装nodejs插件

在插件管理中安装nodejs插件并重启jenkins
在这里插入图片描述
在jenkins全局配置中配置nodejs,路径更换为自己的路径即可
在这里插入图片描述

二、jenkins以vue项目

创建项目“vue-test”
在这里插入图片描述
配置:

1、全局参数配置

我这里配置了一个当前部署项目的一个版本号
在这里插入图片描述

2、源码配置

在这里插入图片描述

3、构建环境

在这里插入图片描述

4、构建

在这里插入图片描述
说明:

# vue项目打包完成之后,剩下的工作主要是由deploy.sh完成
cnpm -v
cd element-ui-demo
cnpm install
cnpm run build --prerelease
echo "cnpm打包完成了 "
echo "当前版本号:" $version
chmod 775 ./deploy.sh
sh deploy.sh $version

deploy.sh文件内容:

#!/bin/bash
version=$1
imagename=nginx-agent
container=nginx-agent
echo "执行docker ps"
docker ps 
if [[ "$(docker inspect $container 2> /dev/null | grep $container)" != "" ]]; 
then 
  echo $container "容器存在,停止并删除"
  echo "docker stop" $container
  docker stop $container
  echo "docker rm" $container
  docker rm $container
else 
  echo $container "容器不存在"
fi
# 删除镜像
echo "执行docker images"
docker imagesps 
if [[ "$(docker images -q $imagesname 2> /dev/null)" != "" ]]; 
then 
  echo $imagesname '镜像存在,删除它'
  docker rmi $(docker images -q $imagesname 2> /dev/null)
else 
  echo $imagesname '不存在'
fi
docker build -t nginx-agent:$version .
echo "执行docker images"
docker images 
docker run --name nginx-agent -p 8001:80 -d $imagename:$version

其中还有几个重要的配置文件如下:
Dockerfile

FROM nginx
COPY ./dist/index.html /app/
COPY ./dist/static/js /app/static/js
COPY ./dist/static/css /app/static/css
COPY ./dist/static/fonts /app/static/fonts
COPY ./nginx.conf /etc/nginx/conf/nginx.conf
COPY ./default.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

nginx.conf

user  nginx;
worker_processes  auto;
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
events {
    worker_connections  65535;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}

default.conf

server {
    listen  80;
    server_name localhost; 
    location / {
            root  /app;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
            }
}

源码地址:

https://gitee.com/superbutton/vue-study

三、构建项目

在这里插入图片描述
查看构建log
在这里插入图片描述

四、访问

http://ip:port
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins利用docker部署vue项目 的相关文章

随机推荐

  • python 一些常用但总是记不住的函数

    python 一些常用但总是记不住的函数 import numpy as np transpose 转置函数 y 61 np mat span class hljs number 1 span span class hljs number
  • 每天一篇论文 316/365 用于欠驱动系统能量控制端到端学习的深拉格朗日网络

    Deep Lagrangian Networks for end to end learning of energy based control for under actuated systems 摘要 将深度学习应用于控制领域 xff0
  • Android 注解(Annotation)的入门与使用(一)

    Android 注解 xff08 Annotation xff09 的入门与使用 xff08 一 xff09 概述什么是注解 xff08 Annotation xff09 注解 xff08 Annotation xff09 用来做什么元注解
  • Java的equals方法使用方法

    在标准Java库中包含150多个equals方法的实现 xff0c 这里给出一个比较完美的实现方法 1 xff09 显示参数命名为otherObject xff0c 稍后需要将它转换成另一个叫做other的变量 2 xff09 检测this
  • Java学习之旅--集合的使用(Map集合)

    好几天没有更新了 xff0c 主要是最近正在学习集合 xff0c 让博主有点头大 所以就耽误了 xff1a 现在就来说说集合里的Map集合 xff1a import java span class hljs preprocessor uti
  • Java学习之旅--线程的创建方法

    线程创建的方法一 span class hljs keyword package span com geminno day14 createthread1 span class hljs keyword public span span c
  • select搜索功能实现

    select搜索功能实现 最近在找工作 没时间写博客 现在找到了 就发发工作上的代码吧 xff01 今天我们说说select标签的搜索功能 xff1b 拿到任务时 xff0c 我先想到就是上网找资料 xff0c 最后看到的都是各种jquer
  • 【转】setStyleSheet的用法

    转自 xff1a https www cnblogs com aheng123 p 5630761 html 使用setStyleSheet来设置图形界面的外观 xff1a QT Style Sheets是一个很有利的工具 xff0c 允许
  • Mysql插入语句之value与values区别

    本文编写时间是在几年前 xff0c 可能不符合现有MySQL最新版本文档所述 xff0c 请自行判断 value与values区别 http dev mysql com doc refman 5 7 en insert html 看了一下官
  • 将jetson nano tf卡 制作成img镜像批量克隆

    jetson nano tf卡系统克隆 注意 这篇文章所使用的方式如果失败的话请看另一篇 大概率失败 1 linux 安装工具 根据使用的文件系统大小生成镜像文件 更改空镜像文件的分区表信息 挂载虚拟磁盘并对虚拟磁盘进行分区格式化 备份SD
  • 电机,电调,电池搭配的一些关系

    电机 2212 920KV 含义 宽22mm xff0c 高12mm 在1V电压下每分钟920转 kv 值越大 转速越快 配的桨叶越小 扭力越小 kv值越小 转速越慢 配的桨叶越大 扭力越大 电流关系 电机满载电流 lt 电调输出电流 lt
  • 使用Docker安装RabbitMq

    1 搜索镜像 docker search rabbitmq management 2 拉取镜像 docker pull macintoshplus rabbitmq management 3 启动rabbitmq docker run d
  • git如何回滚到历史某个版本

    场景 xff1a 比如某员工误操作提交到了公司比较重要的develop分支 xff0c 如何恢复到之前的某一个版本呢 xff0c git如何回滚到历史某个版本 方法一 xff1a idea里面git操作版本 1 2 选中某一个版本 xff0
  • 使用Idea中Docker插件部署Springboot应用并远程Debug

    目前在java开发中 xff0c 由于一套完整的项目所涉及到的微服务模块很多 xff0c 要是按照传统的方式一个一个部署比较麻烦 xff0c 所以很多情况下我们都会使用docker镜像的方式进行部署 当我们的应用部署好之后 xff0c 若运
  • ClickHouse安装(单机版)

    官方说明文档 yum span class token function install span span class token parameter variable y span yum utils yum config manage
  • docker推送镜像至阿里私有镜像仓库

    docker推送镜像至阿里私有镜像仓库 一 注册阿里私有镜像仓库二 将公共镜像推送至私有镜像仓库1 首先拉取到mysql镜像2 登录阿里云Docker Registry xff08 这里的信息要更换成自己的 xff09 3 将mysql镜像
  • Docker安装Jenkins

    查找jenkins镜像 span class token function docker span search jenkins 拉取jenkins镜像 span class token function docker span pull
  • HDFS通过WEB UI操作文件

    HDFS通过WEB UI操作文件 1 创建目录2 向指定目录上传文件3 返回上层目录4 移动文件5 删除文件6 修改文件权限 所有者 xff0c 组等信息7 搜索文件8 查看文件 进入Browse the file system 1 创建目
  • Jenkins创建多分支流水线

    Jenkins创建多分支流水线 一 准备工作二 安装插件1 安装Docker和Docker Pipeline2 安装Blue Ocean3 安装Publish Over SSH 三 创建多分支流水线四 配置以及脚本四 构建项目 在我们的实际
  • Jenkins利用docker部署vue项目

    Jenkins利用docker部署vue项目 一 环境准备1 安装docker2 安装nodejs3 安装cnpm与配置淘宝镜像4 jenkins安装nodejs插件 二 jenkins以vue项目1 全局参数配置2 源码配置3 构建环境4