试过了后端部署jenkins的便捷,这次换成前端来试试,是vue3+vite项目结构
首先需要一台服务器来安装docker镜像(这里在宝塔能直接安装,问题不大网上都有教程)
接下来是安装jenkins和nginx(这里不能用docker来安装jenkins,nginx可以用docker来安装,docker的jenkins坑较多,博主暂时不去研究了)
这里去安装lts(稳定)版本的war包
然后把war打到网站的java项目里
/usr/local/java/jdk-11.0.18/bin/java -jar -Xmx1024M -Xms256M /www/wwwroot/jenkins/jenkins.war --httpPort=8080
这里目录如果跟博主不一样可以自行更改
部署完后就直接可以打开8080端口
这里的话去系统管理配置全局变量,这里先得在服务器安装环境(jdk,node,npm,cnpm之类)
在服务器env查看环境变量复制这一串(不要漏掉了)
这里可以去下载一个MobaXterm
MobaXterm free Xserver and tabbed SSH client for Windows (mobatek.net)
直接安装然后连接root用户就好
安装好之后选择流水线项目确定进行下一步
这里记得去docker安装nginx,docker常见命令不再多说
这里脚本路径对应git根目录下的路径如果Jenkins文件下下一层记得xxx/Jenkins
保存完之后就可以构建了
pipeline {
agent any
environment {
APP_NAME = 'sitema-vue3'
APP_PROFILE = 'prod'
APP_IMAGE = 'sitema:dev'
APP_PORT = 81
}
stages {
stage('vue环境准备') {
steps {
echo '************** vue环境准备 **************'
sh 'cnpm install && cnpm run build:${APP_PROFILE}'
sh 'cp -r dist Docker/'
}
}
stage('构建Docker镜像') {
steps {
echo '************** delete container and image... **************'
sh 'docker ps -a | grep ${APP_NAME} | awk \'{print $1}\' | xargs -i docker stop {} | xargs -i docker rm {}'
sh 'docker images | grep ${APP_NAME} | grep dev | awk \'{print $3}\' | xargs -i docker rmi {}'
echo '************** docker build **************'
sh 'cd Docker && docker build -f Dockerfile -t ${APP_IMAGE} . --no-cache'
}
}
stage('运行容器') {
steps {
echo '************** docker run start **************'
sh 'docker run -d -p ${APP_PORT}:80 --restart=always --name ${APP_NAME} ${APP_IMAGE}'
}
}
}
}
这里的jenkins脚本较为简单,就是删除原docker镜像,重新生成镜像,然后执行dockerfile文件命令,这里cnpm命令也得去服务器安装就是宝塔镜像 如果卡住很正常,用sh 'ls'查看文件目录就好,大部分是路径一些问题,好解决
这里去下载这个portainer比较好,可视化管理页面
docker search portainer
docker pull portainer/portainer-ce
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /dockerData/portainer:/data --restart=always --name portainer portainer/portainer-ce:latest
这里记得去防火墙宝塔双开端口,宿主机对应的容器端口都是9000 安装完打开就好了
这里较简单就是拷贝文件粘贴文件,暴露80端口,这里端口是容器端口映射的是你在jenkins文件上的81端口
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
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;
keepalive_timeout 65;
server {
listen 80;
server_name xxx; # 服务器地址或绑定域名
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 /usr/share/nginx/html;
}
}
}
nginx文件直接复制粘贴就好了 上传完git之后,构建jenkins服务就会先去git上拉代码,然后执行jenkins文件
这里就完成了,然后之后如果需要更改git上传服务器直接在这里构建就好,vscode的插件提交暂时没用过,之后用了会再写,后端的部署有空也会写