J'ai récupéré un projet symfony3.4, je veux le lancer localement, le projet est construit avec un docker, les containers docker sont bien lancés et fonctionnent bien (docker-compose.yml). J'ai bien configuré le fichier de paramètres (parameters.yml). dans mongodb j'ai importé les données du projet avec succès. je me suis connecté à mongodb pour créer les utilisateurs pour l'authentification. j'ai un problème de connexion dans symfony et mongodb. quand je fais une requête avec doctrine, j'ai l'erreur suivante :

(4/4) MongoConnectionException
No servers yet eligible for rescan

(2/4) MongoConnectionException
No suitable servers found (`serverSelectionTryOnce` set): \[connection refused calling hello on 'localhost:27017'\]

paramaters.yml

    mongodb_server: "localhost:27017"
    mongodb_database: 'fleur'
    mongodb_user: 'fleur'
    mongodb_password: 'fleur'
    mongodb_authsource: 'admin'

doctrine_mongodb.yml

doctrine_mongodb:
    connections:
        default:
            server: '%mongodb_server%'
            options:
                db: '%mongodb_database%'
                username: '%mongodb_user%'
                password: '%mongodb_password%'
                authSource: '%mongodb_authsource%'
    default_database: '%mongodb_database%'
    document_managers:
        default:
            auto_mapping: true

docker-compose.yml

version: '2'
services:
    front:
        image: nginx
        ports:
            - "8080:8080"
            - "443:443"
        links:
            - "engine:engine"
        volumes:
            - ".:/home/docker:ro"
            - "./docker/front:/etc/nginx/conf.d:rw"
        networks:
            default:
                aliases:
                - local.marchedici.fr #to solve wkhtml2pdf loopback query

    engine:
        build: ./docker/engine/
        ports :
            - "9000:9000"
            #- "9010:9010"
        volumes:
            - ".:/home/docker:rw"
            - "/usr/local/bin/composer:/var/www/.composer:rw"
            - "./docker/engine/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro"
            - "./docker/engine/xdebug-disabled.ini:/usr/local/etc/php/conf.d/custom-xdebug.ini:ro"
            #- "./docker/engine/xdebug-enabled.ini:/usr/local/etc/php/conf.d/custom-xdebug.ini:ro"
            #- "./docker/engine/xdebug-enabled-wsl2.ini:/usr/local/etc/php/conf.d/custom-xdebug.ini:ro"
            - "./docker/engine/supervisor.conf:/etc/supervisor.conf:ro"
        links:
            - "elastic:elastic"
            - "redis:redis"
            - "mongo:mongo"
            - "rabbitmq:rabbitmq"
        working_dir: "/home/docker"
        #extra_hosts:
         #   - "docker.host:${WSL_IP}"
    mongo:
        image: mongo:4.4
        ports:
            - "27017:27017"
        #environment:
         #   - MONGO_INITDB_ROOT_USERNAME=root
          #  - MONGO_INITDB_ROOT_PASSWORD=root
        expose:
            -   27017
        volumes:
            - "./data/mongodb44dir:/data/db"
            - "./data/log:/var/log/mongodb/"
            - "./data/dumpmarchedici:/home/dumpmongo:rw"
        command: mongod

    elastic:
        environment:
            - cluster.name=docker-cluster
            - bootstrap.memory_lock=true
            - xpack.security.enabled=false
            - xpack.monitoring.enabled=false
            - xpack.graph.enabled=false
            - xpack.watcher.enabled=false
            - "ES_JAVA_OPTS=-Xms2048m -Xmx2048m"
        ulimits:
            memlock:
                soft: -1
                hard: -1
        volumes:
            - "./data/elasticdir:/usr/share/elasticsearch/data"
        ports:
            - 9200:9200
        build: ./docker/elastic/
    redis:
        image: redis:3.2
        ports:
            - "6379:6379"

    varnish:
        image: varnish:6.4
        ports:
            - "80:80"
        links:
            - front
            - engine
        volumes:
            - "./docker/varnish:/etc/varnish"

    rabbitmq:
        image: rabbitmq:3.8-management
        hostname: rabbitmq
        ports:
            - 10500:15672
        environment:
            - RABBITMQ_DEFAULT_USER=admin
            - RABBITMQ_DEFAULT_PASS=admin

J'ai essayé de changer l'hôte 127.0.0.1, localhost, j'ai créé un hôte personnalisé local.site.fr. j'ai téléchargé compass pour tester la connexion à la base de données mongodb, je peux me connecter avec succès, je me suis connecté à mon conteneur docker mongo pour accéder à mongodb depuis la ligne de commande avec succès. je ne comprends pas d'où vient le problème. dans le journal mongodb je n'ai rien. dans le journal php j'ai l'erreur suivante :

[2023-01-17 11:56:45] request.CRITICAL: Exception thrown when handling an exception (MongoConnectionException: No servers yet eligible for rescan at /home/docker/vendor/alcaeus/mongo-php-adapter/lib/Alcaeus/MongoDbAdapter/ExceptionConverter.php line 92) {"exception":"[object] (MongoConnectionException(code: 13053): No servers yet eligible for rescan at /home/docker/vendor/alcaeus/mongo-php-adapter/lib/Alcaeus/MongoDbAdapter/ExceptionConverter.php:92, MongoDB\\Driver\\Exception\\ConnectionTimeoutException(code: 13053): No servers yet eligible for rescan at /home/docker/vendor/mongodb/mongodb/src/functions.php:431)"} {"file":"/home/docker/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php","line":101,"class":"Symfony\\Component\\HttpKernel\\EventListener\\ExceptionListener","function":"logException","memory_peak_usage":"2 MB","memory_usage":"2 MB","url":"/","ip":"172.18.0.1","http_method":"GET","server":"local.site.fr","referrer":null}

2 réponses


gillesr
Réponse acceptée

Bonjour,
dans ton parameters.yml, essaie ça :


mongodb_server: "mongo:27017"

Merci beaucoup gillesr.