ARM64 CentOS 7.9 with Java 8 and LibreOffice for document processing
10K+
使用 GitHub Actions 自动构建 ARM 架构的 CentOS 7.9 Docker 镜像,内置 Java 8 和 LibreOffice。
# 拉取最新版本
docker pull cmming/arm-centos79-java8-libreoffice:latest
# 拉取稳定版本
docker pull cmming/arm-centos79-java8-libreoffice:stable
# 克隆仓库
git clone https://github.com/cmming/arm-libreofffice.git
cd arm-libreofffice
# 使用 Docker Buildx 构建 ARM64 镜像
docker buildx build --platform linux/arm64 -t arm-centos79-java8-libreoffice:latest .
详细的推送指南请查看 DOCKER-HUB-GUIDE.md
在 GitHub 仓库设置中添加 Secrets:
DOCKERHUB_USERNAME: 你的 Docker Hub 用户名DOCKERHUB_TOKEN: 你的 Docker Hub 访问令牌推送代码到 main 分支即可自动构建并推送到 Docker Hub
# 使用推送脚本
./push-to-dockerhub.sh your-dockerhub-username
# 或手动推送
docker tag arm-centos79-java8-libreoffice:latest your-username/arm-centos79-java8-libreoffice:latest
docker push your-username/arm-centos79-java8-libreoffice:latest
# 从 Docker Hub 拉取并运行
docker run -it --platform linux/arm64 cmming/arm-centos79-java8-libreoffice:latest
# 验证 Java 安装
docker run --rm --platform linux/arm64 cmming/arm-centos79-java8-libreoffice:latest java -version
# 验证 LibreOffice 安装
docker run --rm --platform linux/arm64 cmming/arm-centos79-java8-libreoffice:latest libreoffice --version
# 验证架构
docker run --rm --platform linux/arm64 cmming/arm-centos79-java8-libreoffice:latest uname -m
如果从 GitHub Actions Artifacts 下载了镜像文件:
# 解压并导入镜像
gunzip arm-centos79-java8-libreoffice.tar.gz
docker load < arm-centos79-java8-libreoffice.tar
arm64v8/centos:7.9.2009/usr/lib/jvm/java-1.8.0-openjdkGitHub Actions 工作流会在以下情况下自动触发构建:
由于 GitHub Actions runner 运行在 x86_64 架构上,无法直接运行 ARM64 容器进行交互测试。但我们提供了以下验证方法:
.github/workflows/test-arm64.yml)我们现在使用 tonistiigi/binfmt 提供更好的 ARM64 模拟支持:
# 方法一:使用提供的测试脚本(推荐)
./test-arm64-local.sh
# 方法二:手动设置和测试
docker run --rm --privileged tonistiigi/binfmt --install arm64
docker pull cmming/arm-centos79-java8-libreoffice:latest
docker run -it --platform linux/arm64 cmming/arm-centos79-java8-libreoffice:latest
# 方法三:在真实 ARM64 设备上测试
# 拉取并测试镜像(无需模拟)
docker pull cmming/arm-centos79-java8-libreoffice:latest
docker run -it cmming/arm-centos79-java8-libreoffice:latest
| 环境 | 性能 | 兼容性 | 使用场景 |
|---|---|---|---|
| 原生 ARM64 | 100% | 完美 | 生产环境 |
| binfmt 模拟 | ~60-80% | 优秀 | 开发测试 |
| 标准 QEMU | ~20-40% | 良好 | 基础验证 |
这个镜像可以作为基础镜像来运行 Java 应用服务。我们提供了完整的示例和配置文件。
```bash
# 构建基础镜像
docker build --platform linux/arm64 -t arm-centos79-java8-libreoffice .
# 或从 Docker Hub 拉取
docker pull cmming/arm-centos79-java8-libreoffice:latest
# 构建应用镜像
docker build --platform linux/arm64 -f Dockerfile.app -t my-java-app .
# 运行应用
docker run -p 8080:8080 --platform linux/arm64 my-java-app
更新 docker-compose.yml 中的镜像名称:
services:
java-app:
image: cmming/arm-centos79-java8-libreoffice:latest
# ... 其他配置
然后运行:
# 构建并启动应用
docker-compose --profile app up --build
# 开发环境(包含调试端口)
docker-compose --profile dev up --build
#### 2. 使用 Docker Compose(推荐)
```bash
# 构建并启动应用
docker-compose --profile app up --build
# 开发环境(包含调试端口)
docker-compose --profile dev up --build
# 只构建基础镜像
docker-compose --profile build up --build
├── Dockerfile # 基础镜像(CentOS 7.9 + Java 8 + LibreOffice)
├── Dockerfile.app # Java 应用镜像
├── docker-compose.yml # Docker Compose 配置
├── build-java-app.sh # Java 应用构建脚本
├── java-app-example/ # 示例 Java 应用
│ └── SimpleJavaApp.java
├── config/ # 应用配置文件
│ └── application.properties
└── test-document.txt # 中文文档转换测试文件
示例应用提供以下功能:
GET /health - 应用健康状态GET /info - ARM 架构和 Java 环境信息GET / - 功能介绍和测试界面POST /convert - LibreOffice 文档转换(示例)JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -XX:+UseContainerSupport -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai"
PORT: 应用端口(默认 8080)JAVA_OPTS: JVM 参数LANG: 语言环境(zh_CN.UTF-8)/app/config: 配置文件目录/app/logs: 日志文件目录/tmp/converts: 文档转换临时目录替换 Java 应用:
# 在 Dockerfile.app 中使用 Docker Hub 镜像
FROM cmming/arm-centos79-java8-libreoffice:latest
COPY --chown=appuser:appuser your-app.jar app.jar
直接使用镜像:
# 运行你的 Java 应用
docker run -v /path/to/your/app.jar:/app/app.jar \
-p 8080:8080 --platform linux/arm64 \
cmming/arm-centos79-java8-libreoffice:latest \
java -jar /app/app.jar
添加依赖:
# 基于现有镜像添加额外软件
FROM cmming/arm-centos79-java8-libreoffice:latest
RUN yum install -y your-package
-Xms 和 -Xmx-XX:+UseG1GC)UseContainerSupport 自动检测容器资源限制开发环境支持 Java 远程调试:
# 启动调试模式
docker-compose --profile dev up
# 连接调试器到端口 5005
# IDE 中配置远程调试:localhost:5005
Content type
Image
Digest
sha256:43f710c2e…
Size
836.2 MB
Last updated
12 months ago
docker pull chmi0427/arm-centos79-java8-libreoffice