Код: Выделить всё
mongodb:
image: mongo:latest
container_name: mongodb
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: xxxx
MONGO_INITDB_ROOT_PASSWORD: xxxx
ports:
- "27017:27017"
volumes:
- ./mongodb/data:/data/db
logging:
driver: "json-file" # Use the JSON file logging driver
options:
max-size: "200k" # Rotate log files when they reach 200KB
max-file: "10" # Keep up to 10 rotated log files
docker exec -it mongodb mongos "db.getCollectionNames ()" < /p>
Но когда я пытаюсь подключиться к нему с помощью драйвера PHP: < /p>
Код: Выделить всё
$mongodb_url = "mongodb://xxxx:xxxx@localhost:27017/Test";
try {
// Create MongoDB manager
$manager = new MongoDB\Driver\Manager($mongodb_url);
// Test query on 'urls' collection
$query = new MongoDB\Driver\Query([]);
$cursor = $manager->executeQuery('Test.urls', $query);
echo "Mongodb successfully connected!\n";
foreach ($cursor as $doc) {
print_r($doc);
}
} catch (MongoDB\Driver\Exception\Exception $e) {
echo "Failed to connect or query MongoDB. Error: " . $e->getMessage() . "\n";
}
< /code>
Это дает мне эту ошибку: < /p>
Failed to connect or query MongoDB. Error: No suitable servers found (`serverSelectionTryOnce` set): [socket timeout calling hello on '127.0.0.1:27017']. Topology type: Single
< /code>
Драйвер PHP работает, потому что я могу создать MongoDB Manager < /p>
$manager = new MongoDB\Driver\Manager($mongodb_url);
< /code>
Проблема в том, когда я пытаюсь выполнить запрос < /p>
$query = new MongoDB\Driver\Query([]);
$cursor = $manager->executeQuery('Test.urls', $query);
Подробнее здесь: https://stackoverflow.com/questions/797 ... set-socket
Мобильная версия