Я хочу создать образ своего приложения в докере с помощью gradle:
build.gradle
task buildDocker (type:Docker, dependsOn: build) {
applicationName = jar.baseName
dockerfile = file('Dockerfile')
doFirst {
copy {
from jar
into stageDir
}
}
}
Dockerfile:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
EXPOSE 8083
ADD build/libs/app-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
Но в конце выполнения я получил такую ошибку:
BUILD FAILED in 28s
7 actionable tasks: 3 executed, 4 up-to-date
Docker execution failed
Command line [docker build -t com.project/app:0.0.1-SNAPSHOT /home/adrian/IdeaProjects/App/build/docker] returned:
ADD failed: stat /var/lib/docker/tmp/docker-builder669437080/build/libs/app-0.0.1-SNAPSHOT.jar: no such file or directory
11:22:34 AM: Task execution finished 'buildDocker'.
Я много чего пробовал - переименовывать папки, менять пути и т. д., Похоже, ничего не работает.
И я не понимаю, почему я получил эту ошибку, потому что существует этот файл: /build/libs/app-0.0.1-SNAPSHOT.jar
.
Это необходимо? Потому что у меня: dependsOn: build
Да, ты прав. Так запускается задача build
? Артефакт построен?
Я получил это в консоли: > Task :check > Task :build > Task :buildDocker FAILED
Я действительно не так много знаю Spring и Gradle, но я думаю, что сборка завершена еще и потому, что создается каталог сборки
Я вижу, что задачи выполняются, поэтому можете ли вы убедиться, что файл существует?
Да, я cd в build / libs / и файл существует
Dockerfile
находится на том же уровне, что и папка build
?
Да, ls
показывает мне: build build.gradle debScripts Dockerfile
Тогда не знаю, извините. Вроде все настроено правильно.
Абсолютный путь пользователя в поле назначения
ADD your_path/yourfile /app.jar
Вы запускали задачу
build
илиjar
раньше? Также вы можете проверить в консоли, что файл существует?