操作流程

登录平台说明

  1. 开发中心
    访问地址:http[s]://域名/developer (如:http://testpai.cndi.com/developer
    账号密码:blogis / Blogis@1234

  2. 工作台
    访问地址:http[s]://域名/workbench (如:http://testpai.cndi.com/workbench
    账号密码:
    沙箱:baowan / Baowan@1234
    生产:

  3. 控制台
    用企业管理员进入工作台后,我的 - 控制台,进入

  4. Nacos
    访问地址:http[s]://域名/nacos (如:http://testpai.cndi.com/nacos
    账号密码:nacos / cndi@nacos

  5. Kuboard
    访问地址:http://om.testpai.cndi.com/
    账号密码:cndi / cndi123

演示代码工具包下载

见附件

  1. 后端基本代码
  2. PC、APP表单代码
  3. maven私仓配置文件
  4. pai安装包

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 #创建前端工程

设置数据源

  1. 进入人事 管理套件
  2. 找到工程管理
  3. 找到后端工程 - 更多 - 配置管理 - 数据源配置
  4. 设置jdbc内容并保存,关闭窗口
jdbc:mysql://101.33.221.183:3306/demodb?serverTimezone=Asia/Shanghai
demodb
jhxF8SHMbXdCDwkx
  1. 点击数据库管理
  2. 创建tb-leave表,创建name\days\start_time\end_time\reason字段并保存

后端工程初始化

设置nacos
  1. 进入nacos后台

  2. 选择dev命名空间,复制dev命名空间namespace编码dev

  3. 选择一个已有的工程配置,克隆

  4. 选择目标空间为dev,设置克隆的Data id工程名-dev.yaml(如:pai-hr-dev.yaml),开始克隆

  5. 修改配置文件中的jdbc部分

  6. 选择工程名-dev.yaml,克隆到prod,创建生产环境的路由,命名为工程名-prod.yaml,再设置生产环境的jdbc

  7. 需要去nacos 的 prod命名空间,找到pai-gateway-prod.yaml并编辑,加上此服务的路由。并修改示例中行的rules工程名
    放到 id: index-workbench 之前
    示例:

         - id: pai-rules
           uri: lb://pai-rules
           predicates:
             - Path=/rules-api/**
           filters:
             - StripPrefix=1
设置工程
  1. 使用IDEA打开后端工程
  2. Setting/Preferences找到maven设置User setting file,勾选Overrider,设置路径为setting.xml文件
  3. 找到bootstrap-dev.yml文件,设置namespace为nacosdev命名空间编码,设置server-addr为当前访问域名(如:http://testpai.cndi.com如果以后用正式域名要记得换
  4. 修改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>
  1. 将工具包中后端工程.zipmain文件夹覆盖至工程目录(这一步是将数据库表中的代码生成下来,后面根据自己的业务写po\vo\controller)
  2. 找到Application.java文件,在main函数进行run、debug
  3. 运行成功,访问http://localhost:8080/doc.html能看到swagger文档及controller接口
  4. 使用maven package进行打包
  5. 编辑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
  1. 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
  2. 登录Kuboard,进入blogis命名空间,通过yaml拉取harbor镜像进行部署,选择Deployment.yaml文件自动拉取
  3. 后端部署成功

前端工程初始化

  1. 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
  1. 找到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 替换
      },
    },
  1. 打开终端,运行npm install,安装依赖完成后,执行npm run dev启动服务成功运行
  2. 使用npm run build:prod进行打包
  3. 编辑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
  1. docker打包和推送、kuboard拉取镜像操作同后端
文档更新时间: 2024-08-04 11:26   作者:姚连洲