Php 静态xml文件中的Env变量

Php 静态xml文件中的Env变量,php,magento,docker,Php,Magento,Docker,我刚开始使用Docker,我发现它很棒。我尝试为Magento构建一个2个容器的环境,第一个容器用于apache,第二个容器用于mysql。我将这两个容器链接在一起,并在apache容器上安装了Magento,使用Mysql容器作为DB主机。我从apache容器上键入“env”的env变量中获得了链接mysql容器的ip。它工作正常,但问题是Magento将mysql服务器的ip保存在local.xml文件中。如果我重建mysql容器,它将获得一个新的ip地址,magento将停止工作,直到我更

我刚开始使用Docker,我发现它很棒。我尝试为Magento构建一个2个容器的环境,第一个容器用于apache,第二个容器用于mysql。我将这两个容器链接在一起,并在apache容器上安装了Magento,使用Mysql容器作为DB主机。我从apache容器上键入“env”的env变量中获得了链接mysql容器的ip。它工作正常,但问题是Magento将mysql服务器的ip保存在local.xml文件中。如果我重建mysql容器,它将获得一个新的ip地址,magento将停止工作,直到我更新local.xml文件。使用php设置文件(即wordpress),我可以使用函数
getenv(“MYSQL\u PORT\u 3306\u TCP\u ADDR”)
动态获取正确的ip地址,但是如果它保存在静态文件xml文件(如Magento)中,我该怎么办呢?

我找到了它!当一个容器通过--link选项链接到另一个容器时,docker会自动在容器/etc/hosts中添加一个条目,其中包含刚刚链接的容器的别名和ip地址

172.17.0.2  mysql 9e37a5c0a444 my-mysql
我只需将mysql服务器的IP地址替换为主机名(mysql或my mysql),当IP地址发生变化时,它也可以工作