支持arm64 和amd64的java镜像,例子:
FROM superdowell/java:1.8.3
WORKDIR /root/
RUN mkdir -p /root/configs/core && \
mkdir -p /root/configs/service/app
ENV JAVA_OPTS="-server -Xms5120M -Xmx5120M -Xmn768M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+CMSClassUnloadingEnabled -XX:+ParallelRefProcEnabled -XX:+CMSScavengeBeforeRemark"
ARG JAR_FILE
#将jar打包到镜像中(将本文件拷贝到相应工程根目录)
COPY ${JAR_FILE} /root/jar/app.jar
CMD java $JAVA_OPTS -jar /root/jar/app.jar
构建命令:
docker build --build-arg JAR_FILE=target/xxx_master.jar -t $image_name:$version .
多平台构建命令:
docker buildx build -t $image_name:$version --platform=linux/arm64,linux/amd64 --build-arg JAR_FILE=target/xxx_master.jar . --push
k8s 配置:
securityContext:
runAsUser: 5000
runAsGroup: 5000
runAsNonRoot: true
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
dockerfile:
FROM openjdk:8-jre-alpine
LABEL maintainer="dowell" \
description="基于java1.8,修改时区,字体,添加用户javauser"
WORKDIR /root/
RUN echo -e 'https://mirrors.aliyun.com/alpine/v3.6/main/\nhttps://mirrors.aliyun.com/alpine/v3.6/community/' > /etc/apk/repositories &&\
apk update &&\
apk upgrade &&\
apk --no-cache add tzdata zeromq ttf-dejavu fontconfig &&\
rm -rf /var/cache/apk/* &&\
ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\
echo "Asia/Shanghai" > /etc/timezone &&\
echo "securerandom.source=file:/dev/./urandom" >> /usr/lib/jvm/default-jvm/jre/lib/security/java.security &&\
addgroup -S -g 5000 javauser && adduser -S -h /root -u 5000 -G javauser -s /bin/sh javauser -k /dev/null &&\
chown -R javauser:javauser /root
USER javauser
Content type
Image
Digest
sha256:728444008…
Size
124.3 MB
Last updated
almost 3 years ago
docker pull superdowell/java