我试图将我本地的服务公开给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" )
}
答案 0 :(得分:1)
您当前的方法无法正常工作,只是因为您尝试在导出之前阅读环境变量 。
在配置阶段(例如您的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" )
}
}