基于alpine构建jdk21版本并安装字体和设置时区
目录
基于alpine构建jdk21版本并安装字体和设置时区
网上的jdk21版本docker基础镜像很少,所以我们需要自己去构建,
编写基础Dockerfile
文件
FROM alpine:latest
MAINTAINER wuhm
# 替换清华镜像源并安装字体
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories \
&& apk update \
&& apk --no-cache add ttf-dejavu fontconfig
# 安装时区
RUN apk add --no-cache tzdata \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
# 设置工作目录
WORKDIR /
# 安装jdk21
RUN apk add --no-cache openjdk21
# 设置 JAVA_HOME 环境变量
ENV JAVA_HOME=/usr/lib/jvm/default-jvm
CMD ["java", "-version"]
构建镜像
docker build -t registry.cn-beijing.aliyuncs.com/wuhm/jdk21-apline:21.0.3 .
测试镜像
docker run --name jdk21 -itd registry.cn-beijing.aliyuncs.com/wuhm/jdk21-apline:21.0.3
查看日志
(base) ➜ docker logs jdk21
openjdk version "21.0.3" 2024-04-16
OpenJDK Runtime Environment (build 21.0.3+9-alpine-r0)
OpenJDK 64-Bit Server VM (build 21.0.3+9-alpine-r0, mixed mode, sharing)
(base) ➜
推送镜像
docker push registry.cn-beijing.aliyuncs.com/wuhm/jdk21-apline:21.0.3
运用
运用的Dockerfile
FROM registry.cn-beijing.aliyuncs.com/wuhm/jdk21-apline:21.0.3
#FROM registry.cn-beijing.aliyuncs.com/wuhm/base-ubuntu-jdk21-ffmpeg:1.0.2
ARG VERSION
ARG SERVICE_NAME
ARG SERVICE_PORT
ENV VERSION=$VERSION
ENV SERVICE_NAME=$SERVICE_NAME
ENV SERVICE_PORT=$SERVICE_PORT
# 运行参数
ENV JAVA_OPTS=""
ENV LOG_PATH="/var/logs"
ENV PROFILE=""
ENV ENABLE_DEBUG="false"
ENV ENABLE_DEBUG_PORT="5005"
VOLUME /tmp
VOLUME $LOG_PATH
# 应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD ./target/${SERVICE_NAME}.jar /app.jar
# 设置环境变量
ENV LANG zh_CN.UTF-8
ENV LANGUAGE zh_CN:zh
ENV LC_ALL zh_CN.UTF-8
# 声明运行时端口
EXPOSE ${SERVICE_PORT}
EXPOSE ${ENABLE_DEBUG_PORT}
# 启动容器时的进程
#ENTRYPOINT sh -c 'java $JAVA_OPTS -jar -Xmx256m -Dfile.encoding=utf-8 /app.jar --logging.file.path=$LOG_PATH --spring.profiles.active=$PROFILE'
# 启动容器时的进程
ENTRYPOINT sh -c 'if [ "$ENABLE_DEBUG" = "true" ]; then \
echo "ENABLE_DEBUG=true" ; \
JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:${ENABLE_DEBUG_PORT}" ; \
fi ; \
echo "JAVA_OPTS=$JAVA_OPTS" ; \
java $JAVA_OPTS -jar -Xmx256m -Dfile.encoding=utf-8 /app.jar --logging.file.path=$LOG_PATH --spring.profiles.active=$PROFILE'