Ошибка добавления: stat /var/lib/docker/tmp/docker-builderXYZ/myapp.jar: нет такого файла или каталога

Я поставил Dockerfile в корень проекта.

это означает, что есть каталог ./target, и в нем maven создает файл spring-boot-web-0.0.1-SNAPSHOT.jar.

Теперь я хочу добавить это в образ докера:

FROM centos

RUN yum install -y java    # `-y` defaults questions to 'yes'

VOLUME /tmp                # where Spring Boot will store temporary files

WORKDIR /                  # self-explanatory

ADD /target/spring-boot-web-0.0.1-SNAPSHOT.jar myapp.jar # add fat jar as "myapp.jar"

RUN sh -c 'touch ./myapp.jar' # updates dates on the application (important for caching)

EXPOSE 8080                # provide a hook into the webapp

# run the application; the `urandom` gets tomcat to start faster
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/myapp.jar"]

Это ADD не работает:

ADD failed: stat /var/lib/docker/tmp/docker-builder119635304/myapp.jar: no such file or directory
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
0
3 810
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, что решение перемещает комментарии в свои собственные строки, поскольку они нарушают работу команд, если они находятся в той же строке, что и они.

Этот Dockerfile отлично работает:

# a linux runtime environment
FROM centos

# install java; `-y` defaults questions to 'yes'
RUN yum install -y java

# where Spring Boot will store temporary files
VOLUME /tmp

# self-explanatory
WORKDIR /

# add fat jar as "myapp.jar"
ADD /target/spring-boot-web-0.0.1-SNAPSHOT.jar myapp.jar

# updates dates on the application (important for caching)
RUN sh -c 'touch ./myapp.jar'

# provide a hook into the webapp
EXPOSE 8080

# run the application; the `urandom` gets tomcat to start faster
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/myapp.jar"]

да, это есть и в официальных документах: Docker treats lines that begin with # as a comment, unless the line is a valid parser directive. A # marker anywhere else in a line is treated as an argument. (docs.docker.com/engine/reference/строитель)

codinghaus 09.04.2019 09:40

Другие вопросы по теме