JDK + Maven + 中文环境 + 时区 + 无限制加密策略 + 国内源加速构建。
Dockerfile:带 Maven、国内源、JCE 无限制策略
# ------------------------------------------------------------
# 基础镜像:Ubuntu 25.10(amd64 架构)
# ------------------------------------------------------------
FROM --platform=linux/amd64 ubuntu:25.10
# ------------------------------------------------------------
# 安装必要系统工具:
# - ca-certificates:根证书(用于 HTTPS)
# - tar:解压工具
# - tzdata:时区配置
# - locales:语言包支持
# - curl:下载 Maven 包
# ------------------------------------------------------------
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
tar \
tzdata \
locales \
curl \
# 设置时区为上海(Asia/Shanghai)
&& ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& dpkg-reconfigure -f noninteractive tzdata \
# 设置中文 UTF-8 语言环境
&& locale-gen zh_CN.UTF-8 \
&& update-locale LANG=zh_CN.UTF-8 \
# 清理缓存,减小镜像体积
&& rm -rf /var/lib/apt/lists/*
# ------------------------------------------------------------
# 设置环境变量(全局中文环境 + JVM 默认 UTF-8)
# ------------------------------------------------------------
ENV LANG=zh_CN.UTF-8
ENV LANGUAGE=zh_CN:zh
ENV LC_ALL=zh_CN.UTF-8
ENV JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8 -Duser.language=zh -Duser.region=CN"
# ------------------------------------------------------------
# 设置默认工作目录
# ------------------------------------------------------------
WORKDIR /usr/local
# ------------------------------------------------------------
# 拷贝本地 JDK 安装包(请与 Dockerfile 放在同一目录)
# ------------------------------------------------------------
COPY jdk-8u471-linux-x64.tar.gz /tmp/
# ------------------------------------------------------------
# 解压 JDK 并配置环境变量
# ------------------------------------------------------------
RUN tar -xzf /tmp/jdk-8u471-linux-x64.tar.gz -C /usr/local/ \
&& mv /usr/local/jdk1.8.0_471 /usr/local/jdk \
&& rm -rf /tmp/*
ENV JAVA_HOME=/usr/local/jdk
ENV PATH=$JAVA_HOME/bin:$PATH
# ------------------------------------------------------------
# 拷贝 JCE 无限制加密策略(需在构建上下文中提供 UnlimitedJCEPolicyJDK8 文件夹)
# ------------------------------------------------------------
COPY UnlimitedJCEPolicyJDK8/ /tmp/UnlimitedJCEPolicyJDK8/
RUN cp -f /tmp/UnlimitedJCEPolicyJDK8/local_policy.jar $JAVA_HOME/jre/lib/security/ \
&& cp -f /tmp/UnlimitedJCEPolicyJDK8/US_export_policy.jar $JAVA_HOME/jre/lib/security/ \
&& rm -rf /tmp/UnlimitedJCEPolicyJDK8
# ------------------------------------------------------------
# 安装 Maven(使用官方二进制包)
# ------------------------------------------------------------
ENV MAVEN_VERSION=3.9.9
RUN curl -fsSL https://downloads.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz -o /tmp/maven.tar.gz \
&& tar -xzf /tmp/maven.tar.gz -C /usr/local/ \
&& mv /usr/local/apache-maven-${MAVEN_VERSION} /usr/local/maven \
&& rm -f /tmp/maven.tar.gz
ENV MAVEN_HOME=/usr/local/maven
ENV PATH=$MAVEN_HOME/bin:$PATH
# ------------------------------------------------------------
# 拷贝 Maven settings.xml(含国内源配置)
# ------------------------------------------------------------
COPY settings.xml $MAVEN_HOME/conf/settings.xml
# ------------------------------------------------------------
# 验证 Java 与 Maven 安装
# ------------------------------------------------------------
RUN java -version && javac -version && mvn -version
# ------------------------------------------------------------
# 默认工作目录
# ------------------------------------------------------------
WORKDIR /workspace
# ------------------------------------------------------------
# 启动容器后默认进入 bash
# ------------------------------------------------------------
CMD ["bash"]
构建前的目录结构示例
请确保 Dockerfile 同级目录包含以下文件:
.
├── Dockerfile
├── jdk-8u471-linux-x64.tar.gz
├── UnlimitedJCEPolicyJDK8/
│ ├── local_policy.jar
│ ├── US_export_policy.jar
└── settings.xml
国内 Maven 源示例(settings.xml)
你可以放一个常用的 Maven 国内镜像配置:
<settings>
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>Aliyun Maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
</settings>
也可以用三套高可用国内镜像源(阿里云 + 清华 + 华为云),还自动保留中央仓库和私服扩展位。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- ============================================================
Maven 全局配置文件
说明:
1. 内置多源镜像(Aliyun、清华、华为云)
2. 可同时兼容公司私服
3. 默认使用 UTF-8
============================================================ -->
<!-- 全局属性配置 -->
<profiles>
<profile>
<id>china-mirrors</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<!-- 镜像源配置 -->
<repositories>
<!-- 阿里云公共仓库 -->
<repository>
<id>aliyunmaven</id>
<name>Aliyun Maven</name>
<url>https://maven.aliyun.com/repository/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<!-- 清华大学开源镜像站 -->
<repository>
<id>tuna</id>
<name>TUNA Maven Mirror</name>
<url>https://mirrors.tuna.tsinghua.edu.cn/maven</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<!-- 华为云 Maven 仓库 -->
<repository>
<id>huaweicloud</id>
<name>Huawei Cloud Maven</name>
<url>https://repo.huaweicloud.com/repository/maven/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<!-- 官方中央仓库(作为兜底) -->
<repository>
<id>central</id>
<name>Maven Central</name>
<url>https://repo1.maven.org/maven2/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
</repositories>
<!-- 插件仓库配置 -->
<pluginRepositories>
<pluginRepository>
<id>aliyunmaven-plugin</id>
<name>Aliyun Maven Plugin</name>
<url>https://maven.aliyun.com/repository/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<!-- 激活默认 profile -->
<activeProfiles>
<activeProfile>china-mirrors</activeProfile>
</activeProfiles>
<!-- ============================================================
如果有公司私服,可以在这里加 mirrorOf="*" 的私服地址:
<mirrors>
<mirror>
<id>private-nexus</id>
<mirrorOf>*</mirrorOf>
<name>Company Private Nexus</name>
<url>http://nexus.company.com/repository/maven-public/</url>
</mirror>
</mirrors>
============================================================ -->
</settings>
构建命令(Mac 架构编译 amd64)
docker buildx build --platform linux/amd64 -t myjdk-maven:8u471 .
构建后特性
| 功能 | 说明 |
|---|---|
| √ 中文环境 | 默认 UTF-8,日志不再乱码 |
| √ 上海时区 | JVM 与系统时间一致 |
| √ JCE 无限策略 | AES-256、RSA-2048 可正常使用 |
| √ Maven 内置 | 含国内镜像源 |
| √ 通用基础镜像 | 可直接运行或二次构建 Spring Boot 应用 |
