我有一个gradle任务为我的所有项目构建docker镜像。除private async void button1_Click(object sender, EventArgs e)
{
bool onLine = false;
Stopwatch chrono = new Stopwatch();
await (Task.Run(new Action(() =>
{
chrono.Start();
while (chrono.ElapsedMilliseconds < 2000)
{
if (!State().Equals(Online))
{
System.Threading.Thread.Sleep(250);
}
else
{
onLine = true;
break;
}
}
})));
if (onLine)
{
operationCompleted();
}
else
{
MessageBox.Show("Error");
}
}
之外,它们运行正常,rootProject
具有在DockerimageBuild itself. This dependency should only apply for the
rootProject`之前执行的依赖任务,而不是子项目。
我广泛搜索并阅读文档,但没有找到添加依赖项的完美解决方案,可能我错过了一个明显的观点。
这是我的任务(删除了一些gradle文件)。
allprojects {
apply plugin: com.bmuschko.gradle.docker.DockerRemoteApiPlugin
repositories { jcenter() }
docker {
registryCredentials {
username = dockerRegistryUsername
password = dockerRegistryPassword
}
}
// task build_DockerImage(type: DockerBuildImage, dependsOn: [copy_ImageSource, prepare_ImageConfig]) {
task build_DockerImage(type: DockerBuildImage) {
group 'Docker'
description "Builds the docker image: ${dockerTag} locally"
println "Project: ${rootProject.projectDir}/ci/images/${project.name}"
inputDir = file("${rootProject.projectDir}/ci/images/${project.name}")
tag = "azeti/${project.name}:${dockerTag}"
}
它应该有dependsOn: copy_ImageSource
,但我无法找到正确的符号。
感谢您的帮助。 问候, 塞巴斯蒂安
答案 0 :(得分:0)
解决方案就像将当前项目的名称与根项目的名称进行比较一样简单,只需将dependsOn
用于匹配。
为了简单起见,我已经删除了其余代码,请检查if条件。
task build_DockerImage(type: DockerBuildImage) {
group 'Docker'
description "Builds the docker image: ${dockerTag} locally"
if(project.name.equals(rootProject.name) ) {
dependsOn copy_ImageSource
}
inputDir = file("${rootProject.projectDir}/ci/images/${project.name}")
tag = "azeti/${project.name}:${dockerTag}"
}