docker - 将参数传递给 build.gradle
问题描述
我正在使用 gradle 构建一个 springboot 应用程序。
构建最终输出一个 docker 容器,我希望我的 build.gradle 支持多个环境。
我正在使用gradlew build docker
构建,我的 build.gradle 的 docker 部分是:
docker {
dependsOn build
name "app-production"
files bootJar.archivePath, 'application.yml'
buildArgs(['JAR_FILE': "${bootJar.archiveName}"])
}
我成功地将参数传递给 dockerfile,但现在我还想将参数传递给 build.gradle 文件。可以使用gradlew build docker
吗?
我需要这样的东西:gradlew build docker --env=qa
然后:
docker {
dependsOn build
name "app-${env}"
files bootJar.archivePath, 'application.yml'
buildArgs(['JAR_FILE': "${bootJar.archiveName}"])
}
注意:${bootJar.archiveName}
是我的 build.gradle 中的局部变量,而不是环境变量
有任何想法吗?
解决方案
您可以使用项目属性从命令行将值传递给构建脚本,如下所示:
gradlew build docker -Penv=qa
然后在您的构建脚本中,您可以访问此属性:
docker {
name "app-${env}"
// ....
}
推荐阅读
- visual-studio - 签入策略 Visual Studio - 如果在定义的模板中,则检查变更集注释
- java - 启动 Tomcat 时 JavaMelody 抛出 NullPointerException
- python - 如何更改连接器形状连接到其他形状时的外观?
- angular - 在与 TemplateRef 相同的组件中访问 Angular ng-template
- java - 与面向对象的方法作斗争
- java - Spring注解方法用途
- c# - WindowInteropHelper.EnsureHandle() 的异常
- java - .properties 文件被覆盖。如何克服呢?
- javascript - 将base64转换为blob然后放回输入文件
- angular - 如何在 Angular 中使用 Stack Exchange API