在 CentOS 的 Docker 容器里编译 Java,常见做法有两种:使用官方 Java 镜像(最简单)或 在 CentOS 基础镜像里装 JDK 再编译。下面分别说明。
docker run -it --rm \
-v $PWD:/workspace \
-w /workspace \
openjdk:8 /bin/bash
或 Java 11 / 17:
docker run -it --rm \
-v $PWD:/workspace \
-w /workspace \
openjdk:17 /bin/bash
javac Hello.java
java Hello
✅ 适合:学习、测试、快速编译
docker run -it --rm centos:7 /bin/bash
yum install -y java-1.8.0-openjdk-devel
dnf install -y java-11-openjdk-devel
java -version
javac -version
mkdir /project
cd /project
vi Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello CentOS Docker");
}
}
javac Hello.java
java Hello
FROM centos:7
RUN yum install -y java-1.8.0-openjdk-devel && yum clean all
WORKDIR /app
COPY . .
RUN javac Hello.java
CMD ["java", "Hello"]
构建并运行:
docker build -t centos-java .
docker run --rm centos-java
yum makecache fast
java 没有 javac➡ 没装 -devel
java-1.8.0-openjdk-devel
➡ 需要手动下载 rpm 或用挂载方式(不推荐容器里做)
如果你能告诉我:
我可以给你精确到命令的示例。