使用gradle docker插件将docker服务器IP设置为环境变量
我指的是本杰明·马斯奇科 我使用MacOSX,但我的一些同事使用Linux 我想找到一种使用上述插件的方法来检索docker服务器IP,并将其设置为Spring Boot应用程序使用的环境变量 我可以通过发布一个使用gradle docker插件将docker服务器IP设置为环境变量,gradle,docker,spring-boot,docker-machine,Gradle,Docker,Spring Boot,Docker Machine,我指的是本杰明·马斯奇科 我使用MacOSX,但我的一些同事使用Linux 我想找到一种使用上述插件的方法来检索docker服务器IP,并将其设置为Spring Boot应用程序使用的环境变量 我可以通过发布一个docker机器ip手动完成,但我需要通过gradle以编程方式完成,这样我就可以从gradle运行我的应用程序,它将: 检索docker服务器IP 将其设置为环境变量(例如,$DOCKER\u IP) 然后,我的Spring Boot应用程序将使用该变量连接到docker主机上的My
docker机器ip
手动完成,但我需要通过gradle以编程方式完成,这样我就可以从gradle运行我的应用程序,它将:
- 检索docker服务器IP
- 将其设置为环境变量(例如,
)$DOCKER\u IP
- 然后,我的Spring Boot应用程序将使用该变量连接到docker主机上的Mysql和Elasticsearch
这是否可能以一种通用的方式实现,以便它在Mac Os X和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"
}
}
task setdockrip非常感谢Opal。这是否可以移植到linux?它应该以完全相同的方式执行命令。。。我相信linux没有使用docker机器ip之类的东西。那么,使用linux的人将如何检索docker主机的IP?在linux环境中,docker主机的IP是运行docker的机器的IP。因此,在这种情况下,您只需要获得工作站的IP。看:对吗?你是说localhost
?