载入天数...载入时分秒...

常用 dockerfile 镜像

jdk

FROM alpine:3.20

ARG version=8.482.08.1
ARG TZ=Asia/Shanghai

LABEL maintainer="mumu" \
      org.opencontainers.image.title="Amazon Corretto 8 JDK (Alpine)" \
      org.opencontainers.image.vendor="Company" \
      org.opencontainers.image.version="8.482.08.1" \
      org.opencontainers.image.description="Amazon Corretto 8 JDK on Alpine with common tools"

# 基础工具 & 时区
RUN apk add --no-cache \
      bash \
      curl \
      wget \
      tzdata \
      busybox-extras \
      procps \
      ca-certificates \
    && ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime \
    && echo ${TZ} > /etc/timezone

# Corretto license & repo
RUN wget -O /THIRD-PARTY-LICENSES-20200824.tar.gz \
        https://corretto.aws/downloads/resources/licenses/alpine/THIRD-PARTY-LICENSES-20200824.tar.gz && \
    echo "82f3e50e71b2aee21321b2b33de372feed5befad6ef2196ddec92311bc09becb  /THIRD-PARTY-LICENSES-20200824.tar.gz" | sha256sum -c - && \
    tar x -ovzf THIRD-PARTY-LICENSES-20200824.tar.gz && \
    rm -f THIRD-PARTY-LICENSES-20200824.tar.gz && \
    wget -O /etc/apk/keys/amazoncorretto.rsa.pub \
        https://apk.corretto.aws/amazoncorretto.rsa.pub && \
    echo "6cfdf08be09f32ca298e2d5bd4a359ee2b275765c09b56d514624bf831eafb91  /etc/apk/keys/amazoncorretto.rsa.pub" | sha256sum -c - && \
    echo "https://apk.corretto.aws" >> /etc/apk/repositories

# 安装 JDK
RUN apk add --no-cache amazon-corretto-8=${version}-r0 && \
    rm -f /usr/lib/jvm/java-8-amazon-corretto/lib/src.zip

# ===== 关键:JVM / Locale / Timezone =====
ENV TZ=Asia/Shanghai \
    LANG=zh_CN.UTF-8 \
    LC_ALL=zh_CN.UTF-8 \
    JAVA_TOOL_OPTIONS="-Duser.timezone=Asia/Shanghai" \
    JAVA_HOME=/usr/lib/jvm/default-jvm \
    PATH=/usr/lib/jvm/default-jvm/bin:$PATH

# ===== 内置 java-info(不引入额外文件)=====
RUN printf '%s\n' \
'#!/bin/sh' \
'echo "===== OS & ARCH ====="' \
'uname -a' \
'echo' \
'echo "===== SYSTEM TIME ====="' \
'date' \
'date -u' \
'echo' \
'echo "===== TIMEZONE FILE ====="' \
'ls -l /etc/localtime' \
'cat /etc/timezone 2>/dev/null' \
'echo' \
'echo "===== JVM VERSION ====="' \
'java -version' \
'echo' \
'echo "===== JVM PROPERTIES ====="' \
'java -XshowSettings:properties -version 2>&1 | grep -E "user.timezone|user.language|user.country|file.encoding"' \
'echo' \
'echo "===== JAVA HOME ====="' \
'echo "$JAVA_HOME"' \
'ls "$JAVA_HOME/bin"' \
> /usr/local/bin/java-info \
&& chmod +x /usr/local/bin/java-info

HEALTHCHECK --interval=30s --timeout=3s \
  CMD java -version || exit 1

CMD ["java", "-version"]

jre

FROM alpine:3.20

ARG version=8.482.08.1
ARG TZ=Asia/Shanghai

LABEL maintainer="mumu" \
      org.opencontainers.image.title="Amazon Corretto 8 JRE (Alpine)" \
      org.opencontainers.image.vendor="Company" \
      org.opencontainers.image.version="8.482.08.1" \
      org.opencontainers.image.description="Amazon Corretto 8 JRE on Alpine with common tools"

# 基础工具 & 时区
RUN apk add --no-cache \
      bash \
      curl \
      wget \
      tzdata \
      busybox-extras \
      procps \
      ca-certificates \
    && ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime \
    && echo ${TZ} > /etc/timezone

# Corretto license & repo
RUN wget -O /THIRD-PARTY-LICENSES-20200824.tar.gz \
        https://corretto.aws/downloads/resources/licenses/alpine/THIRD-PARTY-LICENSES-20200824.tar.gz && \
    echo "82f3e50e71b2aee21321b2b33de372feed5befad6ef2196ddec92311bc09becb  /THIRD-PARTY-LICENSES-20200824.tar.gz" | sha256sum -c - && \
    tar x -ovzf THIRD-PARTY-LICENSES-20200824.tar.gz && \
    rm -f THIRD-PARTY-LICENSES-20200824.tar.gz && \
    wget -O /etc/apk/keys/amazoncorretto.rsa.pub \
        https://apk.corretto.aws/amazoncorretto.rsa.pub && \
    echo "6cfdf08be09f32ca298e2d5bd4a359ee2b275765c09b56d514624bf831eafb91  /etc/apk/keys/amazoncorretto.rsa.pub" | sha256sum -c - && \
    echo "https://apk.corretto.aws" >> /etc/apk/repositories

# 安装 JRE
RUN apk add --no-cache amazon-corretto-8-jre=${version}-r0

# ===== 关键:JVM / Locale / Timezone =====
ENV TZ=Asia/Shanghai \
    LANG=zh_CN.UTF-8 \
    LC_ALL=zh_CN.UTF-8 \
    JAVA_TOOL_OPTIONS="-Duser.timezone=Asia/Shanghai" \
    JAVA_HOME=/usr/lib/jvm/default-jvm/jre \
    PATH=/usr/lib/jvm/default-jvm/jre/bin:$PATH

# ===== 内置 java-info(JRE 版)=====
RUN printf '%s\n' \
'#!/bin/sh' \
'echo "===== OS & ARCH ====="' \
'uname -a' \
'echo' \
'echo "===== SYSTEM TIME ====="' \
'date' \
'date -u' \
'echo' \
'echo "===== TIMEZONE FILE ====="' \
'ls -l /etc/localtime' \
'cat /etc/timezone 2>/dev/null' \
'echo' \
'echo "===== JVM VERSION ====="' \
'java -version' \
'echo' \
'echo "===== JVM PROPERTIES ====="' \
'java -XshowSettings:properties -version 2>&1 | grep -E "user.timezone|user.language|user.country|file.encoding"' \
'echo' \
'echo "===== JAVA HOME ====="' \
'echo "$JAVA_HOME"' \
'ls "$JAVA_HOME/bin"' \
> /usr/local/bin/java-info \
&& chmod +x /usr/local/bin/java-info

HEALTHCHECK --interval=30s --timeout=3s \
  CMD java -version || exit 1

CMD ["java", "-version"]
#!/bin/bash
set -euo pipefail

REGISTRY_HOST="xxx.cn"
REGISTRY_PATH="${REGISTRY_HOST}/xxx/base"
PLATFORMS="linux/amd64,linux/arm64"
TAG_SUFFIX="corretto-alpine-multi"

printf 'Logging into %s...\n' "${REGISTRY_HOST}"
echo "password" | docker login "${REGISTRY_HOST}" --username "xxxx" --password-stdin

# Create multi-platform builder

docker buildx create --use --name multi-platform-builder --driver docker-container 2>/dev/null || true

docker buildx build --platform "${PLATFORMS}" -f Dockerfile_jdk8 \
  -t "${REGISTRY_PATH}/jdk:8-${TAG_SUFFIX}" --push .

docker buildx build --platform "${PLATFORMS}" -f Dockerfile_jre8 \
  -t "${REGISTRY_PATH}/jre:8-${TAG_SUFFIX}" --push .
posted @ 2026-01-22 10:48  旧信  阅读(0)  评论(0)    收藏  举报