之前的文章中咱们介绍了怎么经过 Nocalhost 快速开发 Rainbond 上的微服务,介绍了基本的开发流程。
本文将续接上文持续介绍,运用 Nocalhost 开发装备文件 实现以下内容:
- 一键 Run 和 长途Debug
- 耐久化装备
- 开发容器资源约束
- 端口转发
什么是开发装备?
开发装备是围绕 开发形式
来进行的,例如运用什么镜像来进入 开发形式
,是否需求敞开耐久化来保存开发容器的内容,将哪些文件同步到开发容器中,怎么一键调试、一键运行容器内的服务等。 装备了正确且合适的开发装备后,能够在运用 Nocalhost 开发形式
时愈加得心应手。
布置 Rainbond + SpringCloud
接下来持续以上文中的 SpringCloud Pig 为例,调试 Java Maven 服务的 Pig-auth 模块。
项目 Gitee 地址:gitee.com/zhangbigqi/…
布置 Rainbond
这儿就不具体介绍 Rainbond 的装置,请参阅 基于Linux装置Rainbond。
布置 SpringCloud
咱们在 Rainbond 内对接了开源使用商铺后,在开源使用商铺内查找 Spring Cloud Pig
装置 3.5.0
版本。
来自使用商铺装置使用组件的英文称号是主动生成的字符串,需求咱们设置一下组件的英文称号(Deployment Name),经过 Nocalhost 连接到集群时能够很直观的分清楚 Deployment 对应的组件。
Nocalhost 对接 Rainbond
-
装置 Nocalhost JetBrains Plugin 插件,请参阅文档 装置Nocalhost JetBrains Plugin 插件。
-
获取 K8s Kubeconfig,请参阅文档 获取 Kubeconfig 文件。
-
在
pig
命名空间下,找到作业负载pig-auth
右击并挑选Dev Config
(开发装备)
- 将以下装备文件复制到
Dev Config
中。
# Deployment Name
name: pig-auth
serviceType: deployment
containers:
# Deployment 主容器称号
- name: auth
dev:
# 开发镜像,该镜像包含了 Java Maven 环境
image: registry.cn-hangzhou.aliyuncs.com/zqqq/maven:3.8.6-openjdk-8
# 默许终端为 bash
shell: bash
# Rainbond 供给的 StorageClass Name
storageClass: rainbondvolumerwx
# 装备开发容器资源
resources:
limits:
memory: 4096Mi
cpu: "2"
requests:
memory: 2048Mi
cpu: "1"
persistentVolumeDirs:
# Maven 依靠包缓存途径,配合 storageClass 一同食用
- path: /root/.m2/repository
capacity: 10Gi
command:
# 一键发动指令,装置依靠包和发动 pig-auth 子模块
run:
- mvn
- install
- '&&'
- mvn
- spring-boot:run
- -pl
# 指定子模块发动
- pig-auth
# 一键 Debug 指令,装置依靠包和 Debug pig-auth 子模块
debug:
- mvn
- install
- '&&'
- mvn
- spring-boot:run
- -pl
# 指定子模块发动
- pig-auth
# Java Debug 指令
- -Dspring-boot.run.jvmArguments=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
debug:
# 长途端口,对应Debug指令中的 address=5005
remoteDebugPort: 5005
# 挑选 Java 语言
language: java
# 热加载
hotReload: true
# 文件同步
sync:
type: send
mode: gitIgnore
deleteProtection: true
# 端口转发,转发容器内的3000端口到本地3999
portForward:
- 3999:3000
一键 Run
- 右击作业负载
pig-auth
。 - 挑选 Remote Run。
- Nocalhost 会主动进入 DevMode 并执行 Remote Run。
一键 Debug
- 右击作业负载
pig-auth
。 - 挑选 Remote Debug。
- Nocalhost 会主动进入 DevMode 并执行 Remote Debug。
- 在代码中打上断点,建议请求,进入 IDE Debug 形式。
耐久化装备
在开发时,咱们希望耐久化的文件大多数都是 依靠包
日志
,本篇文章中也是缓存了 Java 的依靠包。
rainbondvolumerwx
是 Rainbond 默许供给的存储类,填写以下装备后会在当时命名空间下主动创建 PVC,如下:
storageClass: rainbondvolumerwx
persistentVolumeDirs:
- path: /root/.m2/repository
capacity: 10Gi
容器资源约束
约束开发容器的资源,限额能让服务器的资源利用最大化,能够经过以下开发装备修正:
resources:
limits:
memory: 4096Mi
cpu: "2"
requests:
memory: 2048Mi
cpu: "1"
端口转发
转发容器端口到本地,能够经过以下开发装备修正:
portForward:
- 3999:3000 # 转发容器 3000 端口到本地 3999 端口
最后
当然 Nocalhost 能够同时调试多个微服务,同样的方式只需修正装备文件中的 Deployment Name 和 Containers Name 以及微服务的子模块。
Nocalhost 还有一些开发装备文中没讲到的,比方:开发环境变量、文件同步的两种形式 pattern
gitignore
等等,而且 Nocalhost 支撑多种语言,Java 只是其中一种,小伙伴们能够自行探索。
Nocalhost + Rainbond 让开发、布置愈加高效、便捷。