【项目定制配置文件】jenkins自动部署开发服务器

pull/554/head
痴货 2024-09-16 07:44:28 +08:00
parent fe33517ef0
commit c23b2201cd
4 changed files with 112 additions and 3 deletions

View File

@ -4,12 +4,12 @@ NODE_ENV=production
VITE_DEV=true
# 请求路径
VITE_BASE_URL='http://api-dashboard.yudao.iocoder.cn'
VITE_BASE_URL='http://192.168.10.207'
# 文件上传类型server - 后端上传, client - 前端直连上传仅支持S3服务
VITE_UPLOAD_TYPE=server
# 上传路径
VITE_UPLOAD_URL='http://api-dashboard.yudao.iocoder.cn/admin-api/infra/file/upload'
VITE_UPLOAD_URL='http://192.168.10.207/admin-api/infra/file/upload'
# 接口地址
VITE_API_URL=/admin-api
@ -30,7 +30,7 @@ VITE_BASE_PATH=/
VITE_OUT_DIR=dist
# 商城H5会员端域名
VITE_MALL_H5_DOMAIN='http://mall.yudao.iocoder.cn'
VITE_MALL_H5_DOMAIN='http://192.168.10.207'
# 验证码的开关
VITE_APP_CAPTCHA_ENABLE=true

16
Dockerfile Normal file
View File

@ -0,0 +1,16 @@
FROM 192.168.10.206:8888/library/nginx:1.26.2
ENV TZ=Asia/Shanghai
#创建app目录
WORKDIR /app
COPY ./dist/ /app
#COPY ./ssl/* /etc/nginx
ADD ./nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

45
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,45 @@
pipeline {
agent any
environment {
NAME = "specialty-ui"
VERSION = "latest"
ENVTYPE = "DEV"
DEVIMGURL = "192.168.10.206:8888"
DEVVERSION = "dev"
}
stages {
stage('拉取代码') {
steps {
echo "${ref}分支开始构建"
checkout scmGit(branches: [[name: "${ref}"]], extensions: [], userRemoteConfigs: [[credentialsId: 'gitee', url: 'https://gitee.com/jianghewangluo/specialty.git']])
}
}
stage('编译代码') {
steps {
sh "npm config set registry https://registry.npmmirror.com"
sh "npm install -g pnpm"
sh "pnpm install"
sh "npm run build:dev"
}
}
stage('打包') {
steps {
withCredentials([usernamePassword(credentialsId: 'harbor', passwordVariable: 'password', usernameVariable: 'username')]) {
sh "docker build -t ${DEVIMGURL}/library/${NAME}:${VERSION} ./"
sh "echo ${password} | docker login -u ${username} --password-stdin http://${DEVIMGURL}"
sh "docker push ${DEVIMGURL}/library/${NAME}:${VERSION}"
}
}
}
stage('启动项目') {
steps {
sshPublisher(publishers: [sshPublisherDesc(configName: 'saas', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'sh /home/start.sh', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
}
}

48
nginx.conf Normal file
View File

@ -0,0 +1,48 @@
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;
client_max_body_size 0;
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 192.168.10.207; ## 重要!!!修改成你的外网 IP/域名
location / { ## 前端项目
root /app;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /admin-api/ { ## 后端项目 - 管理后台
proxy_pass http://specialty:48080/admin-api/; ## 重要proxy_pass 需要设置为后端项目所在服务器的 IP
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /app-api/ { ## 后端项目 - 用户 App
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
proxy_pass http://specialty:48080/app-api/; ## 重要proxy_pass 需要设置为后端项目所在服务器的 IP
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}