Сборка Docker Image с Gradle завершается с ошибкой «COPY fail: исходные файлы не указаны» - PullRequest
0 голосов
/ 25 января 2019

Я новичок в Gradle. Я пытаюсь создать Dockerfile из моего build.gradle

Dockerfile

FROM camunda/camunda-bpm-platform:tomcat-7.7.0

COPY build/libs/*.war /camunda/webapps/
COPY camunda/ /camunda/webapps/engine-rest/WEB-INF/
COPY definitions/ /camunda/definitions/

build.gradle

    task buildDocker(type: Docker, dependsOn: build) {
        push = false
        dockerfile = file("Dockerfile")
        version release.version
        tag = "${docker_registry_url}/camunda"
        doFirst {
            copy {
                from war
                into stageDir
            }
            copy {
                from "${projectDir}/camunda/"
                into stageDir
            }
            copy {
                from "${projectDir}/definitions/"
                into stageDir
            }
        }
    }

выход

. / Gradlew clean build buildDocker --info

Не удалось выполнить задачу ': buildDocker'. Не удалось выполнить Docker Командная строка [docker build -t 73299472920.dkr.ecr.us-east-1.amazonaws.com/camunda:0.0.0.uncommitted-71119c2 / Users / amx / Code / backend / jclaim / build / docker] вернула:

Копирование не выполнено: исходные файлы не указаны

Я могу создать этот образ вручную из того же Dockerfile , используя docker build -t , но в задаче Gradle buildDocker это не удается.

Это работает даже когда я не добавляю последние два COPY

Dockerfile

FROM camunda/camunda-bpm-platform:tomcat-7.7.0

COPY build/libs/*.war /camunda/webapps/

Но мне также нужно скопировать два других артефакта.

Плагин My ​​Docker для Docker:

se.transmode.gradle: Gradle-докер: 1,2

Версия Gradle:

Gradle 5.1.1

Пожалуйста, помогите мне исправить это.

1 Ответ

0 голосов
/ 25 января 2019

Спасибо, ребята, я приступил к работе.

Мне пришлось добавить:

doFirst {
    copy {
        from war
        into stageDir
    }
       copy {
           from "${projectDir}/camunda/"
           into stageDir
       }
       copy {
           from "${projectDir}/definitions/"
           into stageDir
       }
}

в моем build.gradle .Это скопировало бы все мои артефакты в build/docker/, и тогда моим Dockerfile просто потребуются имена файлов в их COPY src dest, а НЕ COPY /path/to/src/ dest.

Это исправило это.

Спасибо всем!

...