Ошибка добавления: stat /var/lib/docker/tmp/docker-builder673702145/target/xxx.jar: такого файла или каталога нет - PullRequest
0 голосов
/ 23 сентября 2018

При попытке создать образ докера из базового образа openjdk возникла следующая проблема.

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.

Вот мой файл 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"]

Подскажите, пожалуйста, как я могу решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 08 апреля 2019

Я пишу этот ответ, если кто-то еще сталкивался с этой проблемой и допустил очень любительскую ошибку, такую ​​как моя.

Я столкнулся с этой проблемой, потому что у меня есть <packaging>war</packaging> в моем pom.xml и я пытался добавитьфайл jar в моем контексте докера с такой строкой (ADD $ {JAR_FILE} xxx-xxx.jar).

Итак, простое исправление, изменив мою строку в файле pom.xml на <packaging>jar</packaging>сделал это для меня.

0 голосов
/ 17 июня 2019

Пожалуйста, попробуйте указать файл 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"]
0 голосов
/ 28 ноября 2018

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

Изменение ADD ${JAR_FILE} websocket-demo.jar на ADD ${JAR_FILE} ${directo}

...