java - 运行 docker build -t 时出现 Docker 问题
问题描述
我在执行 docker build -t 时遇到问题,它在终端中指出以下错误:
=> 错误 [4/4] 运行 ["javac", "Main.java"] 0.6s
Dockerfile如下:
FROM openjdk:14
COPY . /src/java
WORKDIR /src/java
RUN ["javac", "Main.java"]
ENTRYPOINT ["java", "main"]
解决方案
只是从 docker hub 的文档中获取这个。Open JDK 确实包含一个像这样的简单案例,它看起来像这样(我已经使它适合您的案例)。
FROM openjdk:14
COPY . /src/myapp
WORKDIR /src/myapp
RUN javac Main.java
CMD ["java", "Main"]
您的 Main.java 应该与您的 Dockerfile 位于同一目录中,而我的看起来像这样(它并不花哨):
class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
您正在运行的目录现在应该如下所示:
.
├── Dockerfile
└── Main.java
您可以使用它运行和构建
$ docker build -t my-java-app .
$ docker run -it --rm --name my-running-app my-java-app
检查您的运行语法并使您的文件像这样,希望对您有所帮助。
推荐阅读
- sql-server - SQL Server:使用 ROW_NUMBER 函数进行分页时出现转换错误
- azure - 无法使用 Microsoft Teams 消息扩展下载文件
- r - 运行应用程序没有结果 R 闪亮的应用程序和崩溃 RStudio
- javascript - 我的路线使用 axios 返回 404 错误
- java - 如何将属性与 immutables.org 库绑定?
- github-actions - 如何修复我的 github 工作流操作,使其再次适用于拉取请求?
- javascript - Django 为什么无限分页不起作用并将我带到下一页?
- r - 设置x轴显示范围
- javascript - 如何在项目中使用 index.js?
- hyperledger-fabric - Hyperledger Fabric:将新成员添加到带有私有数据的通道——我可以在不重新启动的情况下完成吗?