Try adding your php container to the test network
app:
build:
context: ./docker/php_fpm
args:
- TZ=Asia/Tokyo
volumes:
- ./:/var/www
links:
- db
- cache
networks:
- test
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
i create evinroment docker in my project anything ok but laravel cant connect to mysql please help me resolve it.
this is my docker-compose.yml
version: '3'
volumes:
db:
driver: local
networks:
test:
driver: bridge
services:
app:
build:
context: ./docker/php_fpm
args:
- TZ=Asia/Tokyo
volumes:
- ./:/var/www
links:
- db
- cache
web:
build:
context: ./docker/nginx
image: nginx:stable
volumes:
- .:/var/www
- ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
- ./docker/nginx/server.crt:/etc/nginx/server.crt
- ./docker/nginx/server.key:/etc/nginx/server.key
environment:
- TZ=Asia/Tokyo
ports:
- 443:443
- 8080:80
depends_on:
- app
links:
- app
networks:
- test
db:
image: mysql:8.0
environment:
- MYSQL_DATABASE=dev_matching
- MYSQL_USER=app_user
- MYSQL_PASSWORD=qcQ53aaF+S1x
- MYSQL_ROOT_PASSWORD=L+p5aBRxbkKV
- TZ=Asia/Tokyo
volumes:
- ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
- ./docker/mysql/init:/docker-entrypoint-initdb.d
- ./docker/mysql/logs:/var/log/mysql
- ./docker/mysql/data:/var/lib/mysql
ports:
- 3306:3306
networks:
- test
cache:
image: redis:5.0.6
ports:
- 6379:6379
watch:
build:
context: .
dockerfile: ./docker/node/Dockerfile
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
mail:
build:
context: ./docker/mail
ports:
- 1025:1025
- 1080:1080
and this is my issue
Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (SQL: select * from information_schema.tables where table_schema = dev_matching and table_name = migrations and table_type = 'BASE TABLE')
at /home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
665| // If an exception occurs when attempting to run a query, we'll format the error
666| // message to include the bindings with SQL, which will make this exception a
667| // lot more helpful to the developer instead of just the database's errors.
668| catch (Exception $e) {
> 669| throw new QueryException(
670| $query, $this->prepareBindings($bindings), $e
671| );
672| }
673|
Exception trace:
1 Doctrine\DBAL\Driver\PDO\Exception::("SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known")
/home/ket/Desktop/gcode/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18
2 Doctrine\DBAL\Driver\PDO\Exception::new(Object(PDOException))
/home/ket/Desktop/gcode/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:42
3 PDOException::("PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Name or service not known")
/home/ket/Desktop/gcode/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:38
4 PDO::__construct("mysql:host=db;port=3306;dbname=dev_matching", "app_user", "qcQ53aaF+S1x", [])
/home/ket/Desktop/gcode/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:38
5 Doctrine\DBAL\Driver\PDOConnection::__construct("mysql:host=db;port=3306;dbname=dev_matching", "app_user", "qcQ53aaF+S1x", [])
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67
6 Illuminate\Database\Connectors\Connector::createPdoConnection("mysql:host=db;port=3306;dbname=dev_matching", "app_user", "qcQ53aaF+S1x", [])
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:46
7 Illuminate\Database\Connectors\Connector::createConnection("mysql:host=db;port=3306;dbname=dev_matching", [])
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php:24
8 Illuminate\Database\Connectors\MySqlConnector::connect()
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php:182
9 Illuminate\Database\Connectors\ConnectionFactory::Illuminate\Database\Connectors\{closure}()
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connection.php:924
10 call_user_func(Object(Closure))
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connection.php:924
11 Illuminate\Database\Connection::getPdo()
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connection.php:959
12 Illuminate\Database\Connection::getReadPdo()
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connection.php:404
13 Illuminate\Database\Connection::getPdoForSelect()
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connection.php:330
14 Illuminate\Database\Connection::Illuminate\Database\{closure}("select * from information_schema.tables where table_schema = ? and table_name = ? and table_type = 'BASE TABLE'")
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connection.php:662
15 Illuminate\Database\Connection::runQueryCallback("select * from information_schema.tables where table_schema = ? and table_name = ? and table_type = 'BASE TABLE'", Object(Closure))
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connection.php:629
16 Illuminate\Database\Connection::run("select * from information_schema.tables where table_schema = ? and table_name = ? and table_type = 'BASE TABLE'", Object(Closure))
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Connection.php:338
17 Illuminate\Database\Connection::select("select * from information_schema.tables where table_schema = ? and table_name = ? and table_type = 'BASE TABLE'")
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php:18
18 Illuminate\Database\Schema\MySqlBuilder::hasTable("migrations")
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php:169
19 Illuminate\Database\Migrations\DatabaseMigrationRepository::repositoryExists()
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:590
20 Illuminate\Database\Migrations\Migrator::repositoryExists()
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:91
21 Illuminate\Database\Console\Migrations\MigrateCommand::prepareDatabase()
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:63
22 Illuminate\Database\Console\Migrations\MigrateCommand::handle()
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
23 Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Container/Util.php:37
24 Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
25 Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Object(Closure))
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:37
26 Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), [])
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Container/Container.php:590
27 Illuminate\Container\Container::call()
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Console/Command.php:134
28 Illuminate\Console\Command::execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
/home/ket/Desktop/gcode/vendor/symfony/console/Command/Command.php:255
29 Symfony\Component\Console\Command\Command::run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Console/Command.php:121
30 Illuminate\Console\Command::run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
/home/ket/Desktop/gcode/vendor/symfony/console/Application.php:1009
31 Symfony\Component\Console\Application::doRunCommand(Object(Illuminate\Database\Console\Migrations\MigrateCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
/home/ket/Desktop/gcode/vendor/symfony/console/Application.php:273
32 Symfony\Component\Console\Application::doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
/home/ket/Desktop/gcode/vendor/symfony/console/Application.php:149
33 Symfony\Component\Console\Application::run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Console/Application.php:93
34 Illuminate\Console\Application::run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
/home/ket/Desktop/gcode/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:131
35 Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
/home/ket/Desktop/gcode/artisan:37
and docker container
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b4e7a09d2219 gcode_app "docker-php-entrypoi…" 32 minutes ago Up 32 minutes 9000/tcp gcode_app_1
618ebff1f58a gcode_mail "mailcatcher -f --ip…" 32 minutes ago Up 32 minutes 0.0.0.0:1025->1025/tcp, 0.0.0.0:1080->1080/tcp gcode_mail_1
64e1c9b0add3 gcode_watch "docker-entrypoint.s…" 32 minutes ago Up 32 minutes gcode_watch_1
188a27915a20 redis:5.0.6 "docker-entrypoint.s…" 32 minutes ago Up 32 minutes 0.0.0.0:6379->6379/tcp gcode_cache_1
199a9bda881b mysql:8.0 "docker-entrypoint.s…" 32 minutes ago Up 32 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp gcode_db_1
in my .env file
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_USER=app_user
DB_PASS=qcQ53aaF+S1x
thanks for help bros
Why is host host=gcode_db_1. Should be db. Did you cache your config? php artisan config:clear
Please or to participate in this conversation.