参考资料

  1. docker安装包详细说明以及案例
  2. emlog 是一款基于 PHP 和 MySQL 的开源博客系统
  3. Docker镜像(Image)是什么?
  4. buildpack-deps 是 Docker 官方提供的基础镜像
  5. Ghost 是一个开源的博客平台,专注于专业发布和内容创作
  6. AlmaLinux 是一个开源、企业级的 Linux 发行版
  7. OwnCloud/Server 是一个开源自托管文件同步和共享平台
  8. ZooKeeper 是一个开源的分布式协调服务

AdoptOpenJDK 简介

AdoptOpenJDK 是一个提供预构建 OpenJDK 二进制文件的社区项目,支持多种平台和版本。现已被 Eclipse 基金会接管,更名为 Eclipse Temurin

特点

  1. 免费开源:提供完全开源的 JDK 二进制文件。

  2. 多平台支持:Windows、Linux、macOS、AIX、Solaris 等。

  3. 多版本支持:Java 8、11、15、17 等 LTS 和最新版本。

  4. 多种 JVM 实现:HotSpot、OpenJ9。

  5. 社区驱动:由开发者社区维护,非商业公司主导。

最新更新内容及时间

  • 最新版本:Eclipse Temurin 17.0.7(2023年4月发布)

  • 更新内容:安全补丁、性能优化和错误修复。

镜像下载地址

官网地址

文档地址

Docker 安装示例

# 拉取 AdoptOpenJDK 11(HotSpot)
docker pull adoptopenjdk/openjdk11:latest

# 运行容器
docker run -it adoptopenjdk/openjdk11:latest /bin/bash

YAML 设置示例(如 GitHub Actions)

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK 11
        uses: actions/setup-java@v2
        with:
          distribution: 'temurin'
          java-version: '11'

常见错误及解决方法

  1. 错误:java.lang.UnsupportedClassVersionError

    • 原因:JDK 版本低于编译版本。

    • 解决:升级 JDK 或使用匹配的版本。

  2. 错误:libjli.so not found(Linux)

    • 原因:缺少库文件。

    • 解决:安装依赖库 libc6-dev 或检查环境变量。

  3. 错误:证书问题(SSLHandshakeException)

    • 原因:旧版 JDK 缺少根证书。

    • 解决:更新 JDK 或手动导入证书。

  4. Docker 容器内存不足

    • 解决:增加容器内存限制 -m 2g