【发布时间】:2020-03-11 11:18:29
【问题描述】:
我目前正在尝试 dockerize 我的应用程序以进行本地开发。对于一些上下文,它使用的是 Magento。
我有一个配置文件,我习惯于将 127.0.0.1 设置为 MySQL 主机名,因为 Web 应用程序与 MariaDB 在同一主机上运行。
最初,我尝试使用“链接”将我的容器链接到我的 docker-compose 文件中(在此时我的 docker-compose 设置的摘录下方)
mariadb:
image: mariadb:5.5
php-fpm:
build: docker/php-fpm
links:
- "mariadb:mysql"
此时,可以通过在我的配置文件中将mysql 设置为主机名而不是127.0.0.1 来访问MariaDB。但是,我想保留127.0.0.1。
经过一番挖掘,我找到了这个blog post,它解释了如何设置容器以便可以通过localhost 或127.0.0.1 访问它
这正如我所期望的那样工作,但它有一个缺陷。
没有 Docker,我可以通过加载它来运行利用 magento 核心模块的 PHP 脚本。但是使用 Docker 和博客文章配置,我无法再这样做了,因为 Magento 奇怪地期待一个名为“mysql”的数据库主机名。
无论如何通过 docker-compose 可以使用localhost 和主机名访问容器吗?
没有 Docker,如果我在我的主机上安装 MariaDB,我可以通过127.0.0.1:3306 或mysql:// 连接到它的实例。我想获得类似的行为。
【问题讨论】:
-
显然这不是 docker 的问题,而是 Magento 的问题...
-
如果我直接在我的机器上安装 MariaDB,我不太确定这一点,因为它在没有 docker 的情况下也可以工作。虽然脚本正在使用“链接”,但它停止使用命名空间网络..
标签: php mysql docker magento docker-compose