1

尝试从 openjdk 基础映像创建 docker 映像时遇到以下问题。

ADD ${JAR_FILE} websocket-demo.jar
ADD failed: stat /var/lib/docker/tmp/docker-builder673702145/target/websocket-demo-0.0.1-SNAPSHOT.jar: no such file or directory

实际上,我正在关注教程并在尝试编译 Docker 文件时遇到了这个问题。

这是我的码头文件:

# Start with a base image containing Java runtime
FROM openjdk:8-jdk-alpine

# Add Maintainer Info
LABEL maintainer="Nuibb<*****@gmail.com>"

# Add a volume pointing to /tmp
VOLUME /tmp

# Make port 8080 available to the world outside this container
EXPOSE 8080

# The application's jar file
ARG JAR_FILE=target/websocket-demo-0.0.1-SNAPSHOT.jar

# Add the application's jar to the container
ADD ${JAR_FILE} websocket-demo.jar

# Run the jar file 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/websocket-demo.jar"]

你能告诉我如何解决这个问题吗?

4

3 回答 3

1

如果其他人遇到这个问题并且犯了像我这样的非常业余的错误,我正在写这个答案。

我遇到了这个问题,因为我<packaging>war</packaging>在我的 pom.xml 中有一个 jar 文件,并试图在我的 docker 上下文中添加一个像这样的行 (ADD ${JAR_FILE} xxx-xxx.jar) 的 jar 文件。

所以,一个简单的解决方法就是改变我在 pom.xml 文件中的行来 <packaging>jar</packaging>为我做这件事。

于 2019-04-08T11:39:32.783 回答
0

请尝试通过我认为创建 .jar 的路径(build/libs)指定 jar 文件

因此,将您的代码更改为

    # Start with a base image containing Java runtime
FROM openjdk:8-jdk-alpine

# Add Maintainer Info
LABEL maintainer="Nuibb<*****@gmail.com>"

# Add a volume pointing to /tmp
VOLUME /tmp

# Make port 8080 available to the world outside this container
EXPOSE 8080

# The application's jar file
ARG JAR_FILE=build/libs/websocket-demo-0.0.1-SNAPSHOT.jar

# Add the application's jar to the container
ADD ${JAR_FILE} websocket-demo-0.0.1-SNAPSHOT.jar

# Run the jar file 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/websocket-demo-0.0.1-SNAPSHOT.jar"]
于 2019-06-17T12:32:11.533 回答
0

https://medium.freecodecamp.org/dockerfile-copy-vs-add-key-differences-and-best-practices-9570c4592e9e

更改ADD ${JAR_FILE} websocket-demo.jarADD ${JAR_FILE} ${directo}

于 2018-11-27T22:02:42.317 回答