Intellij Idea 在Java Dockerfile命令中复制什么文件?Hello world examples /文件未找到

laik7k3q  于 2023-10-15  发布在  Java
关注(0)|答案(1)|浏览(132)

我一直在关注一些Java Docker hello world教程,其中的Dockerfiles看起来像这样:

FROM openjdk:17
COPY ./out/production/DockerHelloWorld/ /tmp
WORKDIR /tmp
ENTRYPOINT ["java","HelloWorld"]

以上就是这个jetbrains的例子。然而,在本教程的后续步骤中运行此命令会出现以下错误:Error response from daemon: COPY failed: file not found in build context or excluded by .dockerignore: stat out/production/DockerHelloWorld/: file does not exist Failed to deploy '<unknown> Dockerfile: Dockerfile': Can't retrieve image ID from build stream
现在我得到了另一个更简单的教程(只有一个.java文件和一个Dockerfile),它使用java8并从./var/www/java复制。
在这里我有几个问题:

  • 这个复制命令似乎是Java Dockerfile的一个相当常见的步骤。有没有人给予一个解释,它是做什么的?我不明白Java是如何构建得特别好的。
  • 或者,换句话说,这里复制的是什么文件&我如何找到该文件在项目中生成的位置?

如果其他信息有帮助…
下面是我的目录结构的一个更好的视图:https://imgur.com/a/02Zw4GN我也能够成功地打印hello world作为一个java17应用程序。我用的是intellij社区版。

flseospp

flseospp1#

像往常一样,我做了一件蠢事。在遵循intellij tutorial的同时,我复制了docker文件并尝试运行。失败的原因有两个:
1.我需要从`./out/production/DockerHelloWorld'切换到我的项目名称,即docker_hello。
1.我的项目是使用Maven作为构建方法创建的。

我可以通过创建一个新的项目,使用上面提到的intellij构建系统,并将./out/production/DockerHelloWorld交换为我的项目名称,来使示例工作。
..接下来找一些好的maven例子。

相关问题