使用 gradle-docker-plugin 将 docker 服务器 IP 设置为环境变量
Posted
技术标签:
【中文标题】使用 gradle-docker-plugin 将 docker 服务器 IP 设置为环境变量【英文标题】:Setting the docker server IP as an environment variable using the gradle-docker-plugin 【发布时间】:2015-11-07 13:09:05 【问题描述】:我指的是 Benjamin Muschko 的 Gradle-Docker plugin。
我使用 Mac OS X,但我的一些同事使用 Linux。
我想找到一种方法来使用上述插件来检索 docker 服务器 IP 并将其设置为环境变量以供我的 Spring Boot 应用程序使用。
我可以通过发出docker-machine ip <machineName>
手动执行此操作,但我需要通过 gradle 以编程方式执行此操作,以便我可以从 gradle 运行我的应用程序:
$DOCKER_IP
)
然后,我的 Spring Boot 应用将使用该变量连接到 docker 主机上的 Mysql 和 Elasticsearch。
这是否可以以通用方式进行,以便在 Mac Os X 和 Linux 下工作?
【问题讨论】:
【参考方案1】:基本上,是的。它可以以编程方式完成。您需要在 gradle 中执行命令以获取 docker IP。但是环境变量不能在 JVM 语言中设置,你可以使用例如系统属性。以下 sn-p 可能会有所帮助:
task setDockerIP <<
def dockerIP = ['boot2docker', 'ip'].execute().text
System.setProperty('dockerIP', dockerIP)
task printProp(dependsOn: 'setDockerIP') <<
System.properties.each
println "$it.key -> $it.value"
【讨论】:
非常感谢欧泊。这会移植到 linux 上吗? 它应该以完全相同的方式执行命令。 Ummm...我相信linux不使用docker-machine ip <machine-name>
之类的。那么使用 linux 的人将如何检索 docker 主机的 IP?
在 linux 环境中,docker 主机的 IP 是运行 docker 的机器的 IP。因此,在这种情况下,您只需要获取工作站的 IP。请参阅:***.com/questions/9481865/… 对吗?
那么你的意思是localhost
?以上是关于使用 gradle-docker-plugin 将 docker 服务器 IP 设置为环境变量的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用dplyr将特定的数据列移动到最前面使用dplyr将特定数据列移动到另一指定数据列的后面使用dplyr将特定数据列移动到另一指定数据列的前面
您将如何将 node.js 子进程与 discord.js 一起使用?