【问题标题】:ADD failed: stat /var/lib/docker/tmp/docker-builder673702145/target/xxx.jar: no such file or directory添加失败:stat /var/lib/docker/tmp/docker-builder673702145/target/xxx.jar:没有这样的文件或目录
【发布时间】:2019-02-27 04:09:24
【问题描述】:

我在尝试从 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

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

这是我的 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"]

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

【问题讨论】:

    标签: java docker spring-boot jar docker-image


    【解决方案1】:

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

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

    因此,将 pom.xml 文件中的行更改为的简单修复 &lt;packaging&gt;jar&lt;/packaging&gt; 为我做的。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        请尝试通过我认为创建 .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-08-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-16
          • 1970-01-01
          • 2019-09-06
          • 2020-08-09
          相关资源
          最近更新 更多