【发布时间】:2020-01-26 04:44:42
【问题描述】:
我目前有一个 gradle 应用程序,并且正在使用 gradle-docker 插件。
我的 build.gradle 文件中有两个 Docker 任务,每个任务都应该为相应的 Container Registry(由 project.group 指定)标记一个映像:
task buildDockerSandbox(type: Docker) {
project.group = 'gcr.io/sandbox'
baseImage "java:8"
runCommand("mkdir a")
addFile("a.jar", "a/")
workingDir("/a")
entryPoint(["java", "-Dspring.profiles.active=sandbox", "-jar", "a.jar"])
}
task buildDockerProd(type: Docker) {
project.group = 'gcr.io/prod'
baseImage "java:8"
runCommand("mkdir b")
addFile("b.jar", "b/")
workingDir("/b")
entryPoint(["java", "-Dspring.profiles.active=prod", "-jar", "b.jar"])
}
但是,当我运行“gradle buildDockerSandbox”时,“project.group = 'gcr.io/prod'”行在 buildDockerSandbox 任务运行时被注册,导致图像被标记为错误的环境。
为了防止这种情况发生,我需要禁用未在实际运行“project.group = {group}”行中运行的任务,但不知道如何。
预期结果: 运行“gradle buildDockerSandbox”将图像标记为“gcr.io/sandbox:{applicationName}”并运行“gradle buildDockerProd”将图像标记为“gcr.io/prod: {applicationName}”。
实际结果:两个任务都将图像标记为“gcr.io/prod:{applicationName}”
【问题讨论】:
标签: spring-boot docker gradle