使用 gradle-docker-plugin 将 docker 服务器 IP 设置为环境变量

Setting the docker server IP as an environment variable using the gradle-docker-plugin

我参考了 Benjamin Muschko 的 Gradle-Docker plugin

我用 Mac OS X 但是我的一些同事用 Linux.

我想找到一种方法来使用上述插件来检索 docker 服务器 IP 并将其设置为环境变量以供我的 Spring 启动应用程序使用。

我可以通过发出 docker-machine ip <machineName> 手动完成,但我需要通过 gradle 以编程方式执行此操作,这样我就可以 运行 我的应用程序来自 gradle将:

是否有可能以通用方式做到这一点,以便它可以在 Mac Os X and Linux 下工作?

基本上是的。它可以通过编程方式完成。您需要执行gradle中的命令来获取docker IP。然而环境变量不能在 JVM 语言中设置,你可以使用例如系统属性。以下代码段可能会有所帮助:

task setDockerIP << {
   def dockerIP = ['boot2docker', 'ip'].execute().text
   System.setProperty('dockerIP', dockerIP)
}

task printProp(dependsOn: 'setDockerIP') << {
   System.properties.each {
      println "$it.key -> $it.value"
   }
}