kubesphere部署 微服务
https://gitee.com/wang-huamao/RuoYi-Cloud.git
先来构建 auth 服务
# 基础镜像
FROM openjdk:8-jre
# author
MAINTAINER ruoyi
# 挂载目录
VOLUME /home/ruoyi
# 创建目录
RUN mkdir -p /home/ruoyi
# 指定路径
WORKDIR /home/ruoyi
# 复制jar文件到路径
COPY ./jar/ruoyi-auth.jar /home/ruoyi/ruoyi-auth.jar
# 启动认证服务
ENTRYPOINT ["java","-jar","ruoyi-auth.jar"]
这个镜像 用的的jre ,为了方便排错,我们最好用 jdk 版本,如下:
我还要加一些 额外的启动命令 ${PARAMS}
FROM openjdk:8-jdk
LABEL maintainer=leifengyang
#docker run -e PARAMS="--server.port 9090"
ENV PARAMS="--server.port=8080 --spring.profiles.active=prod --spring.cloud.nacos.discovery.server-addr=xiaoka-nacos.xiaoka:8848 --spring.cloud.nacos.config.server-addr=his-nacos.his:8848 --spring.cloud.nacos.config.namespace=prod --spring.cloud.nacos.config.file-extension=yml"
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
COPY target/*.jar /app.jar
EXPOSE 8080
#
ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]
注意: 我复制了 时区, 就算不勾选 同步主机时间, 也没有问题的。
spring.cloud.nacos.discovery.server-addr 这个地址 s是你自己 k8s上的地址 ,内部地址:
xiaoka-nacos.xiaoka
规则:
1、容器默认以8080端口启动
2、时间为CST
3、环境变量 PARAMS 可以动态指定配置文件中任意的值
4、nacos集群内地址为 his-nacos.his:8848
5、微服务默认启动加载 nacos中 服务名-激活的环境.yml 文件,所以线上的配置可以全部写在nacos中。
然后 端口我们都设置为 8080 ,因为在K8S 上是 POD ,每个对应的都是单独的ip:8080
这样在生产环境下,都用8080是没问题的,就相当于 每个pod 就是一台 独立的linux主机。
# 应用上云打包镜像启动会自动激活生产环境 spring.profiles.active=prod: 去nacos中找 ruoyi-auth-prod.yml
接下来我们要做的就是 生产环境的配置抽离
(1)首先在nacos 里创建一个命名空间
我们把开发环境的配置 复制一份到 生产环境。 因为我们修改 生产环境的地址。
这样应用启动,也会加载 生产环境的配置了。
然后再项目中添加一个 Dockerfile 文件。
(1) 打包jar
选中 clean + package
运行中如果 解决方案 SpringBoot Maven RepackageMojo 打包失败原因
打包后, 我们来检查一下自己的包是不是有问题:
先本地启动一下 nacos:
D:\tools\nacos\nacos-server-2.2.0\nacos\bin
startup.cmd -m standalone
然后启动我们的应用:
C:\Users\71574\Desktop\tmp\1\ruoyi-images
java -jar .\ruoyi-auth.jar
这里会报错
正确的方法:
java -Dfile.encoding=utf-8 -jar C:\Users\71574\Desktop\tmp\1\ruoyi-images\ruoyi-auth.jar
这样就没问题了
其他的微服务都是这样的。
ok
进入 docker 镜像制作流程
kubesphere部署 微服务之 docker 镜像制作流程 : 链接
https://www.kubesphere.io/zh/learn/level_4/lesson_19/video/
https://www.kubesphere.io/zh/learn/level_4/lesson_20/video/