Почему этот образ докера возвращает эту ошибку: Невозможно получить доступ к jarfile /home/server.jar - PullRequest
0 голосов
/ 19 декабря 2018
FROM "this line works but cant show code"

RUN yum install -y java-1.8.0-openjdk.x86_64  && yum clean all
COPY /resources/accounts.txt /home/resources/accounts.txt
COPY elk_casino_server /home/elk_casino_server
CMD ["jar","cvmf","/home/elk_casino_server/src/META-INF/MANIFEST.MF","/home/server.jar","/home/elk_casino_server/src/Main.class"]
CMD ["java","-jar","/home/server.jar"]

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Порядок параметров команды char кажется неправильным.manifest-addition должен идти после jar-file, а не перед ним.

jar cfm jar-file manifest-addition input-file(s)

см .: Упаковка программ в файлы JAR: изменение файла манифеста


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


Обе точки вместе взятые:

RUN jar cvmf /home/server.jar /home/elk_casino_server/src/META-INF/MANIFEST.MF /home/elk_casino_server/src/Main.class
0 голосов
/ 19 декабря 2018

Уделите немного больше времени правильному форматированию фрагментов кода и задайте четкий вопрос.

Ваш Dockerfile использует инструкцию COPY для копирования двух ресурсов в образ контейнера:

  1. /resources/accounts.txt (доступно на изображении /home/resources/accounts.txt)
  2. /elk_casino_server (доступно на снимке /home/elk_casino_server)

К сожалению, ваши CMD инструкции пытаются выполнить что-то совсем другое.Можно определить только одну командную инструкцию, и последняя будет принята, а именно:

CMD ["java","-jar","/home/server.jar"]

. Ни в коем случае вы не копируете /home/server.jar в изображение своего контейнера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...