gpt4 book ai didi

docker - Gradle任务类型:Exec无法导出环境变量

转载 作者:行者123 更新时间:2023-12-03 05:09:13 25 4
gpt4 key购买 nike

我试图将本地服务公开给docker网络。为此,我需要导出以下命令的结果:

ip route show | grep docker0 | awk '{print \$9}'

这是我的gradle任务的样子
task exportEnvVariables( type:Exec ) {
executable "sh"
args "-c", "export", "HOST_IP=\$(ip route show | grep docker0 | awk '{print \$9}')"

/* Have also tried:
commandLine 'export HOST_IP=$(ip route show | grep docker0 | awk \'{print $9}\')' */

println System.getenv( "HOST_IP" )
}

最佳答案

您当前的方法行不通,仅仅是因为您尝试在导出之前先读取环境变量

无论您放置在任务闭包中的什么内容,都将在配置阶段(例如println语句)执行,而实际的任务操作则在执行阶段执行。

您可以在执行阶段使用doLast闭包来执行一条语句:

task exportEnvVariables( type:Exec ) {
executable "sh"
args "-c", "export", "HOST_IP=\$(ip route show | grep docker0 | awk '{print \$9}')"

/* Have also tried: commandLine 'export HOST_IP=$(ip route show | grep docker0 | awk \'{print $9}\')' */

doLast {
println System.getenv( "HOST_IP" )
}
}

关于docker - Gradle任务类型:Exec无法导出环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50843293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com