java服务镜像构建
公司计划把业务迁移到k8s中(java开发的微服务,目前是以直接运行的jar包),最近在研究k8s的一些基本知识,先记录一下镜像的构建。
1. 构建java服务镜像
说明:Dockerfile和xxxx.jar包在同一目录下,构建上下文即为当前目录。
直接贴Dockerfile内容,如下:
# 使用 OpenJDK 17 作为基础镜像
FROM eclipse-temurin:17-jdk-alpine
# 配置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
# 设置工作目录
WORKDIR /app
# 拷贝 jar 包到容器中
COPY xxxx.jar app.jar
# 设置容器启动时的命令
ENTRYPOINT ["java", "-Xms512m", "-Xmx512m", "-jar", "app.jar"]
# 设置更多的启动参数
# ENTRYPOINT ["java", "-Xms512m", "-Xmx512m", "-jar", "app.jar", "--spring.profiles.active=dev" ,
# "--spring.config.location=/app/config/application.yml"]
# 这里说明一下,ENTRYPOINT 可以加启动参数,也可以不加,如果不加 --spring.profiles.active=dev 和
# --spring.config.location=/app/config/application.yml
关于配置文件,还有另外一种写法:
--spring.config.location=file:/app/config/application.yml (推荐写法)
追加配置
--spring.config.additional-location=/app/application.yaml
如果是用rancher管理k8s集群,启动参数可以在rancher的管理界面添加,如下:
不管有多少启动参数,都填在参数栏即可,以空格分隔
前提是要把需要的配置文件挂载在容器中【先创建configmap,再创建volume,然后挂载volume到pod中】