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}
Bonjour,
dans ton parameters.yml, essaie ça :
mongodb_server: "mongo:27017"