gpt4 book ai didi

java - 使用 Java 的 Docker : path RUN javac

转载 作者:行者123 更新时间:2023-11-30 02:32:20 26 4
gpt4 key购买 nike

我在 Dockerfile 中运行 javac 时遇到问题:

Dockerfile:

FROM jboss/wildfly
RUN javac ../src/Hello.java
RUN java -cp ../src Hello

Hello.java

public class Hello 
{
public static void main(String[] args)
{
System.out.println("Hello, World");
}
}

当我构建 Dockerfile 时,出现此错误:

javac: file not found: ../src/Hello.java

我的项目“HelloWorld”具有以下结构:

  • docker 目录
    • docker-compose.yml
    • Dockerfile
  • 源代码
    • 你好

最佳答案

RUN 命令仅在容器的文件系统上运行,而不在主机的文件系统上运行。您必须将文件从本地文件系统复制到容器的文件系统:

FROM jboss/wildfly
COPY src /src
RUN javac /src/Hello.java

许多开发人员发现他们希望将构建容器与运行容器分开。运行软件的容器对其环境的要求通常比构建容器少得多(例如,不安装 JDK,仅安装 JRE)。

为此,您的构建容器将是:

FROM openjdk:8
COPY src /src
RUN javac /src/Hello.java
RUN docker build -t foo . && docker push foo

你的运行容器将是

FROM jboss/wildfly
RUN java /src/Hello

记住要挂载在/var/lib/docker.sock中,以便docker build工作

关于java - 使用 Java 的 Docker : path RUN javac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43952866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com