Docker Cloud 自动生成 - 没有这样的文件或目录



运行基于 Maven 的项目构建,但失败了。

原因是no such file or directory当它试图找到罐子时。

Dockerfile:

FROM frolvlad/alpine-oraclejdk8:slim
FROM maven:3.5.2-jdk-8-slim
VOLUME /tmp
CMD ['mvn package']
ADD target/app-0.1.0-SNAPSHOT.jar app.jar <-- fails there
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

日志输出:

...
Removing intermediate container 60da937dde8a
Step 4/8 : CMD ['mvn package']
---> Running in 8ba364ba9d98
---> 4a722569d1a7
Removing intermediate container 8ba364ba9d98
Step 5/8 : ADD target/app-0.1.0-SNAPSHOT.jar app.jar
ADD failed: stat /var/lib/docker/tmp/docker-builder1534563/target/app-0.1.0-SNAPSHOT.jar: no such file or directory
ERROR: Build failed: ADD failed: stat /var/lib/docker/tmp/docker-builder1534563/target/app-0.1.0-SNAPSHOT.jar: no such file or directory
ERROR: Build failed with exit code 2

玩过不同的设置,但尽管应用程序名称与构建的 jar 名称匹配,但它仍然不起作用。

如何解决问题?

这个问题IMO与Spring Boot无关,它与Docker有关。通常,请分享有关您如何运行docker build命令、从哪个目录以及您的Dockerfile确切驻留位置的更多信息。没有这些信息,我们只能推测并提供通用答案:

提供一些注意事项:Docker 对项目的 Maven 结构一无所知,因此您可以保持以下布局:

 <some_dir>
  |____ Dockerfile
  |____ app-0.1.0-SNAPSHOT.jar

然后你可以从这个目录运行 docker build 命令,这应该可以工作。然后,您可以尝试使用target目录,一旦您了解它何时有效以及何时不继续当前文件夹布局,那么通过这种做法,您很可能会很快找到答案。

相关内容

  • 没有找到相关文章

最新更新