首先借用Nocalhost的一张图说明云原生环境下的开发模式:

1、IDE中安装Nocalhost插件,支持VsCode 和 idea,版本要求和安装方法,参考官方文档
2、Nocalhost会把在k8s集群中创建一个pod,我们的代码会被同步到容器里,然后再容器里运行程序。
3、由于要创建pod需要指定镜像,Nocalhost默认提供的镜像可能不能满足要求,手动创建了一个jdk8的maven环境镜像。
1 2 3 4 5 6 7 8 9 |
#依赖镜像名称和ID FROM 11.111.111.121:30002/library/jdk1.8-alpine:latest #指定镜像创建者信息 MAINTAINER DAXI #添加maven ADD apache-maven-3.6.3-bin.tar.gz /usr/local/maven/ #配置maven环境变量 ENV MAVEN_HOME /usr/local/maven/apache-maven-3.6.3 ENV PATH $MAVEN_HOME/bin:$PATH |
4、编辑Nocalhost的Dev Config,进行如下设定,看注释吧:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
name: "my-web" serviceType: "deployment" containers: - name: "my-web" hub: null dev: gitUrl: "" # 指定镜像名称 image: "11.111.111.121:30002/library/nocalhost-dev:latest" shell: "" workDir: "" storageClass: "local" resources: limits: memory: "2048Mi" cpu: "2" requests: memory: "1024Mi" cpu: "1" persistentVolumeDirs: # 持久化maven仓库,避免每次都要下载依赖 - path: "/root/.m2" capacity: "20Gi" command: run: [] debug: # 启动命令根据实际情况修改 - "mvn" - "spring-boot:run" - "-Dspring-boot.run.profiles=test" - "-Dspring-boot.run.jvmArguments=\"-Dlogging.file.path=target/logs" - "-Xms512m" - "-Xmx2048m" - "-Xdebug" - "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005\"" debug: remoteDebugPort: 5005 # 是否热加载,开启后每次保存文件,应用都会自动重启。可以改为false,修改文件后手动编译后也可以热加载 hotReload: false sync: type: "sendReceive" mode: "pattern" filePattern: - "." ignoreFilePattern: - ".idea" - ".git" env: [] # 端口映射,把你指定的一个本地端口映射到Nocalhost容器里的应用端口 portForward: - "57010:7010" |
5、使用Nocalhost之前,要先启动开发模式。(就是根据上面的配置,在k8s中把pod创建好)分两种:
-
Start DevMode 会替换掉原来的pod,这种方式会影响到正在对外提供的服务
-
Start DevMode (复制模式),保持原来的POD正常运行,创建一个新的POD供开发使用。该方式下,外部的正常访问不会访问到该POD,相当于每个人都有一个独立的环境。
6、成功进去开发模式后,会自动在DE中打开一个终端,这就是Nocalhost为我们创建好的容器了。顺利的话,你应该能在该容器的/home/nocalhost-dev目录下看到你的源代码。
7、接下来就是运行应用了:
-
Remote Run : 根据之前配置的run命令启动程序
-
Remote Debug : 根据之前配置的devbug命令启动程序
8、访问程序
通过localhost + 上面配置的端口转发即可访问,例如:localhost:57010
官方文档:https://nocalhost.dev/zh-CN/docs/introduction
文章评论