#docker #gradle #docker-compose #dockerfile #build.gradle
Вопрос:
Я пытаюсь запустить докер через gradle. У меня есть файл Dockerfile, а также файл docker-compose.yml. Когда я запускаю docker через docker-compose, он работает отлично, но когда я запускаю сборку gradle, он выдает ошибку в файле dockerfile, где я КОПИРУЮ или ДОБАВЛЯЮ. Я использую плагин planitr gradle-docker для запуска docker.
Вот мой докер-составьте
services:
microbrains:
build: .
image: dummy/microbrains
container_name: dummy
ports:
- "8080:8080"
Вот моя сборка.gradle.kts
plugins {
id ("com.palantir.docker") version "0.26.0"
}
tasks {
register("check"){}
register("buildNar", Exec::class) {
workingDir = file("dummy-robots")
commandLine = listOf( "cmd","./gradlew", "build")
}
register("stage"){
dependsOn("docker")
}
}
docker {
files(fileTree("dummy-robots"){
include("**/*.nar")
},
fileTree("sh"),
fileTree("nifi-web-ui-overrides"),
fileTree("nifi-framework-nar-overrides"),
fileTree("before"),
fileTree("flowfont"),
file(".dockerignore")
)
name = "dummy/microbrains"
tag("heroku", "registry.heroku.com/dummy-microbrains/web")
dependsOn(tasks.getByName("buildNar"))
}
До сих пор я пытался использовать CopySpec, как я думаю, но не уверен, что каталог неверен. Но мне не везет. Мой док-файл таков
FROM openjdk:8-jre
LABEL maintainer="Apache NiFi <dev@nifi.apache.org>"
LABEL site="https://nifi.apache.org"
ARG UID=1000
ARG GID=1000
ARG NIFI_VERSION=1.9.0
ARG BASE_URL=https://archive.apache.org/dist
ARG MIRROR_BASE_URL=${MIRROR_BASE_URL:-${BASE_URL}}
ARG NIFI_BINARY_PATH=${NIFI_BINARY_PATH:-/nifi/${NIFI_VERSION}/nifi-${NIFI_VERSION}-bin.zip}
ARG NIFI_TOOLKIT_BINARY_PATH=${NIFI_TOOLKIT_BINARY_PATH:-/nifi/${NIFI_VERSION}/nifi-toolkit-${NIFI_VERSION}-bin.zip}
ENV NIFI_BASE_DIR=/opt/nifi
ADD sh/ ${NIFI_BASE_DIR}/scripts/
Ошибка возникает в файле Dockerfile в строке ADD sh/ ${NIFI_BASE_DIR}/scripts/
и, есть ERROR: "/sh" not found: not found
. Для любой команды КОПИРОВАНИЯ она выдает /путь (путь, определенный в файле dockerfile) не найден.