app.jar
должен быть исполняемым файлом jar
, но вместо этого это каталог. Поскольку JAR_FILE
не установлен в качестве аргумента сборки, инструкция COPY
копирует содержимое каталога <project_dir>/build/docker
в каталог /app.jar
в контейнере. Вы можете перечислить его с помощью:
docker run --entrypoint="ls" springio/globalstatus -la /app.jar
Чтобы исправить сборку, вам нужно изменить задачу докера:
docker {
name "${project.group}/${bootJar.baseName}"
copySpec.from(tasks.bootJar.outputs).into("jars")
buildArgs(['JAR_FILE': "jars/${bootJar.archiveName}"])
}
Объяснение: Окно докера плагин рабочий каталог <project_dir>/build/docker
, поэтому, когда образ докера создается, операции над файлом выполняются относительно этого пути.
copySpec
копирует выходные данные задачи bootJar
в каталог build/docker/jars
,buildArgs
устанавливает в качестве аргумента сборки JAR_FILE
имя архива (файл JAR весенней загрузки). Когда образ собирается из Dockerfile
, инструкция COPY
добавит файл jar в корневой каталог контейнера.