操作流程
登录平台说明
开发中心
访问地址:http[s]://域名/developer (如:http://testpai.cndi.com/developer )
账号密码:blogis / Blogis@1234工作台
访问地址:http[s]://域名/workbench (如:http://testpai.cndi.com/workbench )
账号密码:
沙箱:baowan / Baowan@1234
生产:控制台
用企业管理员进入工作台后,我的 - 控制台,进入Nacos
访问地址:http[s]://域名/nacos (如:http://testpai.cndi.com/nacos )
账号密码:nacos / cndi@nacosKuboard
访问地址:http://om.testpai.cndi.com/
账号密码:cndi / cndi123
演示代码工具包下载
见附件
- 后端基本代码
- PC、APP表单代码
- maven私仓配置文件
- pai安装包
pai工具安装
应用创建
创建套件
应用名称:人事管理
应用标识:cn.baokong.hr
应用范围:园区
创建工程
打开pai
工具
xw login #登录开发者账号密码
cd #到工程存储目录
xw create service -n pai-hr -s cn.baokong.hr #创建后端工程
xw create front -n pai-hr-ui -s cn.baokong.hr #创建前端工程
设置数据源
- 进入
人事 管理
套件 - 找到
工程管理
- 找到
后端工程 - 更多 - 配置管理 - 数据源配置
- 设置
jdbc
内容并保存,关闭窗口
jdbc:mysql://101.33.221.183:3306/demodb?serverTimezone=Asia/Shanghai
demodb
jhxF8SHMbXdCDwkx
- 点击
数据库管理
- 创建
tb-leave
表,创建name\days\start_time\end_time\reason字段并保存
后端工程初始化
设置nacos
进入nacos后台
选择
dev
命名空间,复制dev
命名空间namespace
编码dev
选择一个已有的工程配置,克隆
选择目标空间为
dev
,设置克隆的Data id
为工程名-dev.yaml
(如:pai-hr-dev.yaml
),开始克隆修改配置文件中的jdbc部分
选择
工程名-dev.yaml
,克隆到prod
,创建生产环境的路由,命名为工程名-prod.yaml
,再设置生产环境的jdbc需要去nacos 的 prod命名空间,找到
pai-gateway-prod.yaml
并编辑,加上此服务的路由。并修改示例中行的rules
为工程名
放到id: index-workbench
之前
示例:- id: pai-rules uri: lb://pai-rules predicates: - Path=/rules-api/** filters: - StripPrefix=1
设置工程
- 使用
IDEA
打开后端工程 Setting/Preferences
找到maven
设置User setting file
,勾选Overrider
,设置路径为setting.xml
文件- 找到
bootstrap-dev.yml
文件,设置namespace
为nacosdev
命名空间编码,设置server-addr
为当前访问域名(如:http://testpai.cndi.com ,如果以后用正式域名要记得换
) - 修改
pom.xml
文件,复制以下内容到</dependencies>
之前
<dependency>
<groupId>cn.flyrise</groupId>
<artifactId>pai-common-mc</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cn.flyrise</groupId>
<artifactId>pai-common-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cn.flyrise</groupId>
<artifactId>pai-common-oss</artifactId>
</dependency>
<dependency>
<groupId>cn.flyrise</groupId>
<artifactId>pai-common-cache</artifactId>
</dependency>
- 将工具包中
后端工程.zip
中main
文件夹覆盖至工程目录(这一步是将数据库表中的代码生成下来,后面根据自己的业务写po\vo\controller) - 找到
Application.java
文件,在main
函数进行run、debug - 运行成功,访问
http://localhost:8080/doc.html
能看到swagger文档及controller接口 - 使用
maven package
进行打包 - 编辑
Deployment.yaml
,将文件中pai-test
改为工程名,image
改为harbor私仓的镜像地址,namespace
改为kubaord中的命名空间,文件格式如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: pai-test
labels:
app: pai-test
k8s.kuboard.cn/layer: 'svc'
namespace: blogis
spec:
replicas: 1
selector:
matchLabels:
app: pai-test
template:
metadata:
labels:
app: pai-test
spec:
containers:
- name: pai-test
image: dev.flyrise.cn:8082/pi-lz/pai-test:0.0.1
envFrom:
- configMapRef:
name: pai-env-base
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
protocol: TCP
- containerPort: 2201
protocol: TCP
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 8080
timeoutSeconds: 1
dnsConfig:
nameservers:
- 114.114.114.114
terminationGracePeriodSeconds: 60
---
apiVersion: v1
kind: Service
metadata:
name: pai-test
namespace: blogis
labels:
app: pai-test
spec:
type: NodePort
ports:
- name: web
port: 8080
protocol: TCP
targetPort: 8080
- name: health
port: 2201
protocol: TCP
targetPort: 2201
selector:
app: pai-test
- cd到工程根目录,运行
docker build -t dev.demo.cn:8082/pi-lz/pai-testone:0.0.1 .
生成镜像,运行docker push dev.flyrise.cn:8082/pi-lz/pai-testone:0.0.1
推送镜像至harbor - 登录Kuboard,进入
blogis
命名空间,通过yaml拉取harbor镜像进行部署,选择Deployment.yaml
文件自动拉取 - 后端部署成功
前端工程初始化
- vscode打开前端工程,找到
.npmrc
文件,当前为华为源,改为淘宝源
# sass_binary_site=https://repo.huaweicloud.com/node-sass
# phantomjs_cdnurl=https://repo.huaweicloud.com/phantomjs
# electron_mirror=https://repo.huaweicloud.com/electron/
# registry=https://repo.huaweicloud.com/repository/npm/
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/
electron_mirror=https://npm.taobao.org/mirrors/electron/
registry=https://registry.npm.taobao.org
- 找到
nuxt.config.js
文件,设置SERVER_URL
值为当前域名(如:http://testpai.cndi.com/ );设置proxy
节点,在...LOCAL_PROXY,
下复制以下代理:
//testone为工程名称
'/api/testone-api/': {
target: 'http://localhost:8080', // 服务器
changeOrigin: true,
pathRewrite: {
'^/api/testone-api': '', // 把 /api 替换
},
},
- 打开终端,运行
npm install
,安装依赖完成后,执行npm run dev
启动服务成功运行 - 使用
npm run build:prod
进行打包 - 编辑
Deployment.yaml
,将文件中pai-rule-ui
改为工程名,image
改为harbor私仓的镜像地址,namespace
改为kubaord中的命名空间,文件格式如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: pai-rule-ui
labels:
app: pai-rule-ui
k8s.kuboard.cn/layer: 'web'
namespace: blogis
spec:
replicas: 1
selector:
matchLabels:
app: pai-rule-ui
template:
metadata:
labels:
app: pai-rule-ui
spec:
containers:
- name: pai-rule-ui
image: dev.flyrise.cn:8082/pi-dev/pai-rule-ui:v1.8.0
envFrom:
- configMapRef:
name: pai-env-front
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 80
timeoutSeconds: 1
dnsConfig:
nameservers:
- 114.114.114.114
hostAliases:
- hostnames:
- lims.flyrise.cn
ip: 127.0.0.1
terminationGracePeriodSeconds: 60
---
apiVersion: v1
kind: Service
metadata:
name: pai-rule-ui
namespace: blogis
labels:
app: pai-rule-ui
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
selector:
app: pai-rule-ui
---
kind: Ingress
apiVersion: networking.k8s.io/v1beta1
metadata:
name: pai-rule-ui
namespace: blogis
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: 'true'
nginx.ingress.kubernetes.io/proxy-body-size: 200m
spec:
rules:
- host: lims.flyrise.cn
http:
paths:
- path: /rule(/|$)(.*)
backend:
serviceName: pai-rule-ui
servicePort: 80
- docker打包和推送、kuboard拉取镜像操作同后端