Я загрузил 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"]
Я добавил аргумент <finalName>backCrudSpring</finalName> в pom.xml.
@HansKilian прав на 100%. Изображение, отправленное в хаб, содержит не backCrudSpring, а back-crud-spring.jar. Убедитесь сами: переопределить сломанный entrypoint.sh с помощью ls вот так: docker run --entrypoint ls --rm claubermartins/back-crud-spring:2.0
@JockX Я неправильно загрузил изображение в Docker Hub, после ввода команды docker run --entrypoint ls --rm claubermartins/back-crud-spring:2.0 появляется файл back-crud-spring.jar. Так что вы и @HansKilian правы на 100%, спасибо.




После предложений я набрал код 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.
Я смотрел на ваше изображение в Docker Hub, и похоже, что вы скопировали файл jar в
back-crud-spring.jar, а неbackCrudSpring.jar. Вы изменили Dockerfile и забыли отправить его в Docker Hub?