php容器无法连接到mongo容器

时间:2021-06-28 04:14:52

标签: php mongodb docker-compose

我设置了 docker compose 以在本地测试我的应用程序,但该应用程序似乎无法访问 mongo 实例,即使我可以在 Studio 3T 上访问。

这是我的 docker-compose 文件的样子:

services:
  web:
    image: php-app:latest
    ports:
      - '80:80'
    depends_on:
      - db
    networks:
      - code-network
  db:
    container_name: mongodb_4.4
    image: mongo:4.4
    environment:
      MONGO_INITDB_ROOT_USERNAME: demo
      MONGO_INITDB_ROOT_PASSWORD: secret
    ports:
      - '27017:27017'
    networks:
      - code-network
    volumes:
      - mongodb_data_container:/data/db
volumes:
  mongodb_data_container: {}
networks:
  code-network:
    driver: bridge

这是显示在 docker 控制台中的内容:

PHP Fatal error:  Uncaught MongoDB\\Driver\\Exception\\ConnectionTimeoutException: No suitable servers found (`serverSelectionTryOnce` set): [connection refused calling ismaster on '127.0.0.1:27017'] in /var/www/html/vendor/mongodb/mongodb/src/functions.php:431
Stack trace:
#0 /var/www/html/vendor/mongodb/mongodb/src/functions.php(431): MongoDB\\Driver\\Manager->selectServer(Object(MongoDB\\Driver\\ReadPreference))
#1 /var/www/html/vendor/mongodb/mongodb/src/Collection.php(230): MongoDB\\select_server(Object(MongoDB\\Driver\\Manager), Array)
#2 /var/www/html/index.php(12): MongoDB\\Collection->aggregate(Array)
#3 {main}\n  thrown in /var/www/html/vendor/mongodb/mongodb/src/functions.php on line 431

我尝试调整我的 php 代码以使用 localhost 和 127.0.0.1 进行连接,但都没有奏效。

1 个答案:

答案 0 :(得分:1)

看来您还没有配置 MongoDB 客户端,默认 DSN 是 mongodb://127.0.0.1/(本地主机),在您的情况下应该是 mongodb://db/(您定义的数据库服务)。< /p>

阅读有关 MongoDB 客户端构造函数的更多信息:

相关问题