お世話になっております。
今回、dokcerでnginx、php、mysqlのコンテナを立ててlaravelの開発環境を作ってみたのですが、migrationでエラーが出てしまいました。
<環境>
docker for mac: Version 18.03.0-ce-mac60
php: 7.2.5
mysql: 5.7.19
laravel: 5.5
node: 8.11.1
<構成>
・db-data: データ格納場所
・nginx: defaut.conf
server { listen 80; server_name localhost; charset utf-8; root /var/www/src/public; index index.php; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { try_files $uri $uri/ /index.php$query_string; } location ~ .php$ { fastcgi_split_path_info ^(.+.php)(.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }
・src: laravelプロジェクトフォルダ
・php: Dockerfile
FROM php:7.2.5-fpm-alpine3.7 RUN docker-php-ext-install pdo_mysql mysqli mbstring
・docker-compose.yml
version: '3' services: nginx: image: nginx:1.14.0-alpine container_name: "laravel-nginx" ports: - "80:80" depends_on: - php volumes: - ./nginx/default.conf:/etc/nginx/conf.d/default.conf - ./src:/var/www/src php: build: ./php container_name: "laravel-php" env_file: .env environment: DATABASE_HOST: mysql depends_on: - mysql volumes: - ./src:/var/www/src mysql: image: mysql:5.7.19 env_file: .env ports: - "3306:3306" volumes: - ./db-data:/var/lib/mysql
エラー文言
~/src ❯❯❯ php artisan migrate (master) In Connection.php line 664: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known (SQL: select * from information_schema.tables where table_schema = dev_laravel and table_name = migrations) In Connector.php line 67: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known In Connector.php line 67: PDO::__construct(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
sequel proでmysqlに接続できたので、単体のコンテナでは動作しているようなのですが、phpから操作するとエラーが出てしまいました。dockerもlaravelも始めたばかりなのでどこかでミスしているのかもしれないのですが、見つけられず、、どなたかご教示いただければと思います。
追記:
.env(laravel) (###でマスク)
APP_NAME=Laravel APP_ENV=local APP_KEY=########### APP_DEBUG=true APP_LOG_LEVEL=debug APP_URL=http://localhost DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=########### DB_USERNAME=########## DB_PASSWORD=########## BROADCAST_DRIVER=log CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET=
.env(docker-compose) (###でマスク)
MYSQL_RANDOM_ROOT_PASSWORD=yes MYSQL_DATABASE=####### MYSQL_USER=###### MYSQL_PASSWORD=####### MYSQL_ROOT_PASSWORD=#######
dockerとlaravelのMYDQL_DATABASE、 MYSQL_USER、MYSQL_PASSWORDは同じものを設定しました。
回答2件