Gradle 尚未为属性';指定任何值;imageId';创建容器时
我是docker新手,在gradle中使用bmuschko插件创建docker映像、容器并运行它。只有buildImage任务似乎有效。当创建一个容器时,它说 尚未为属性“imageId”指定值 这是我的gradle文件片段Gradle 尚未为属性';指定任何值;imageId';创建容器时,gradle,docker,build.gradle,gradle-plugin,Gradle,Docker,Build.gradle,Gradle Plugin,我是docker新手,在gradle中使用bmuschko插件创建docker映像、容器并运行它。只有buildImage任务似乎有效。当创建一个容器时,它说 尚未为属性“imageId”指定值 这是我的gradle文件片段 dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") classpath 'com.bmusch
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath 'com.bmuschko:gradle-docker-plugin:2.6.5'
}
import com.bmuschko.gradle.docker.tasks.container.*
import com.bmuschko.gradle.docker.tasks.image.*
task copyJar(type: Copy) {
dependsOn 'jar'
from 'build/libs/rest-app-0.0.1-SNAPSHOT.jar'
into 'build/docker'
from 'src/main/resources/Dockerfile'
into 'build/docker'
}
task buildImage(type: DockerBuildImage) {
dependsOn 'copyJar'
inputDir = file('build/docker');
url = 'unix:///var/run/docker.sock'
tag = 'rest-app/nci:0.1'
}
task createContainer(type: DockerCreateContainer) {
dependsOn buildImage
containerName = 'my-rest-app'
targetImageId { buildImage.getImageId() }
portBindings = ['8080:8080']
}
task startContainer(type: DockerStartContainer) {
dependsOn createContainer
targetContainerId { createContainer.getContainerId()}
}
build.dependsOn copyJar
build.dependsOn buildImage
build.dependsOn createContainer
这是stacktrace代码段
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath 'com.bmuschko:gradle-docker-plugin:2.6.5'
}
import com.bmuschko.gradle.docker.tasks.container.*
import com.bmuschko.gradle.docker.tasks.image.*
task copyJar(type: Copy) {
dependsOn 'jar'
from 'build/libs/rest-app-0.0.1-SNAPSHOT.jar'
into 'build/docker'
from 'src/main/resources/Dockerfile'
into 'build/docker'
}
task buildImage(type: DockerBuildImage) {
dependsOn 'copyJar'
inputDir = file('build/docker');
url = 'unix:///var/run/docker.sock'
tag = 'rest-app/nci:0.1'
}
task createContainer(type: DockerCreateContainer) {
dependsOn buildImage
containerName = 'my-rest-app'
targetImageId { buildImage.getImageId() }
portBindings = ['8080:8080']
}
task startContainer(type: DockerStartContainer) {
dependsOn createContainer
targetContainerId { createContainer.getContainerId()}
}
build.dependsOn copyJar
build.dependsOn buildImage
build.dependsOn createContainer
。。。。。
rest应用程序:检查:rest应用程序:createContainer ID!!!!!!!8cf8fc8d2af9
:rest应用程序:createContainer失败
失败:生成失败,出现异常
错误:发现任务的配置有问题
“:rest应用程序:createContainer”
尚未为属性“imageId”指定任何值。试试看:和你一起跑
--info或--debug选项以获取更多日志输出
例外情况是:org.gradle.api.tasks.TaskValidationException:一个问题
在任务“:rest应用程序:createContainer”的配置中找到。
在
org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:55)
谁能告诉我怎么解决这个问题?提前谢谢。收到问题了。似乎该功能(即,
targetImageId(…)
未按预期工作。因此,从2.6.6降到2.6.5就像一种魅力。这是他们的官方github网站上的图片。不熟悉Gradle,但从错误消息判断,您似乎没有指定图像ID。您不应该提供一个基础图像来建立自己的图像吗?@Pubudu感谢您的回复。因为它有targetImageId{buildImage.getImageId()}
,所以它不是必需的。看起来这个功能在新版本2.6.7中很好地工作。