Я не могу запустить свой API через образ докера

Я загрузил Docker-образ API, созданный на Java, который я разместил на Docker-концентраторе:

docker pull claubermartins/back-crud-spring:2.0

Когда я создал контейнер и попытался запустить API, я получил следующее предупреждение после кода:

docker run claubermartins/back-crud-spring: 2.0

«Ошибка: невозможно получить доступ к jar-файлу backCrudSpring.jar»

Dockerfile, используемый для сборки образа:

FROM adoptopenjdk/openjdk11:alpine-jre
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} backCrudSpring.jar
ENTRYPOINT ["java","-jar","backCrudSpring.jar"]

Я смотрел на ваше изображение в Docker Hub, и похоже, что вы скопировали файл jar в back-crud-spring.jar, а не backCrudSpring.jar. Вы изменили Dockerfile и забыли отправить его в Docker Hub?

Hans Kilian 10.05.2022 22:31

Я добавил аргумент <finalName>backCrudSpring</finalName> в pom.xml.

Clauber Martins 10.05.2022 22:34

@HansKilian прав на 100%. Изображение, отправленное в хаб, содержит не backCrudSpring, а back-crud-spring.jar. Убедитесь сами: переопределить сломанный entrypoint.sh с помощью ls вот так: docker run --entrypoint ls --rm claubermartins/back-crud-spring:2.0

JockX 10.05.2022 23:14

@JockX Я неправильно загрузил изображение в Docker Hub, после ввода команды docker run --entrypoint ls --rm claubermartins/back-crud-spring:2.0 появляется файл back-crud-spring.jar. Так что вы и @HansKilian правы на 100%, спасибо.

Clauber Martins 11.05.2022 21:09
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

После предложений я набрал код docker run --entrypoint ls --rm claubermartins/back-crud-spring:2.0 и убедился, что имя файла .jar неверно.

Чтобы подтвердить, я сгенерировал новое изображение и загрузил его в докер-хаб docker build -t claubermartins/back-crud-spring:3.0 ., и оно отлично работает с командой docker run claubermartins/back-crud-spring:3.0.

Заключение, как только я загрузил образ с другим Dockerfile в Hub.

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