当前位置:   article > 正文

Jenkins利用docker部署vue项目_jenkins docker部署vue

jenkins docker部署vue

一、环境准备

本次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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

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

在这里插入图片描述

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

其中还有几个重要的配置文件如下:
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;"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

default.conf

server {
    listen  80;
    server_name localhost; 
    location / {
            root  /app;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
            }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

源码地址:

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

三、构建项目

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

四、访问

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/941167
推荐阅读
相关标签
  

闽ICP备14008679号