前提・実現したいこと
LaravelからMySQLへの接続できず詰まっています。
Windows10+VirtualBox+Vagrantで、dockerを使っています。
いくつか気になる点を修正してみましたが、進まないためアドバイスを頂ければ幸いです。
〇〇のコマンド使ってみた??みたいなご指摘でも頂ければ助かります。
Dockerの構成はよくあるこのような形です。
laravel //Laravelのソース etc └───db //MySQLファイルを設置 └───nginx Dockerfile //PHPについて記載 docker-compose.yml
発生している問題・エラーメッセージ
エラーをみる限り、MySQLにアクセスできていません。
PDOException (2002) SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
該当のソースコード
Vagrantfile
1 2Vagrant.configure("2") do |config| 3 # Virtual OS 4 config.vm.box = "centos/7" 5 6 # PrivateIP 7 config.vm.network "private_network", ip: "192.168.33.10" 8 9 # Synced Folder 10 config.vm.synced_folder "./docker", "/home/vagrant/docker", type:"virtualbox", mount_options: ['dmode=777','fmode=777'] 11 12 # Provisioning Script 13 config.vm.provision :shell, :path => "provision.sh" 14 15 config.vm.provider "virtualbox" do |vm| 16 # メモリを1024MBに設定 17 vm.memory = 2048 18 end 19 20 if Vagrant.has_plugin?("vagrant-vbguest") 21 config.vbguest.auto_update = false 22 end 23 24end 25
Dockkerfile
1#FROM php:7.2-fpm-alpine 2 3FROM php:7.2-fpm 4 5RUN docker-php-ext-install pdo_mysql 6 7RUN apt-get update \ 8 && apt-get install -y \ 9 zlib1g-dev \ 10 libfreetype6-dev \ 11 libjpeg62-turbo-dev \ 12 libpng-dev \ 13 && docker-php-ext-install zip \ 14 && yes "" | pecl install xdebug \ 15 && docker-php-ext-enable xdebug \ 16 && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ 17 && docker-php-ext-install -j$(nproc) gd 18 19 20RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 21RUN php -r "if (hash_file('SHA384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" 22RUN php composer-setup.php 23RUN php -r "unlink('composer-setup.php');" 24RUN mv composer.phar /usr/local/bin/composer 25 26ENV COMPOSER_ALLOW_SUPERUSER 1 27ENV COMPOSER_HOME /composer 28ENV PATH $PATH:/composer/vendor/bin 29 30RUN composer global require "laravel/installer" 31 32RUN apt-get update \ 33 && apt-get install -y libpq-dev \ 34 && docker-php-ext-install pdo_mysql pdo_pgsql 35 36RUN apt-get update \ 37 && apt-get install -my wget gnupg 38 39RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - 40RUN apt-get update 41RUN apt-get install -y nodejs 42 43WORKDIR /laravel 44
Laravel 内の.env
Laravel
1APP_NAME=Laravel 2APP_ENV=local 3APP_KEY=base64:e3naj3FGSpf+sujkSeDwXr2A3KNUys85tOOwHo0/kRk= 4APP_DEBUG=true 5APP_URL=http://local.laravel 6 7LOG_CHANNEL=stack 8 9DB_CONNECTION=mysql 10DB_HOST=127.0.0.1 11DB_PORT=3306 12DB_DATABASE=blog 13DB_USERNAME=root 14DB_PASSWORD= 15 16BROADCAST_DRIVER=log 17CACHE_DRIVER=file 18SESSION_DRIVER=file 19SESSION_LIFETIME=120 20QUEUE_DRIVER=sync 21 22REDIS_HOST=127.0.0.1 23REDIS_PASSWORD=null 24REDIS_PORT=6379 25 26MAIL_DRIVER=smtp 27MAIL_HOST=smtp.mailtrap.io 28MAIL_PORT=2525 29MAIL_USERNAME=null 30MAIL_PASSWORD=null 31MAIL_ENCRYPTION=null 32 33PUSHER_APP_ID= 34PUSHER_APP_KEY= 35PUSHER_APP_SECRET= 36PUSHER_APP_CLUSTER=mt1 37 38MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" 39MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" 40
docker-compose.yml
dockercompose
1version: "2" 2 3services: 4 nginx: 5 image: nginx:alpine 6 volumes: 7 - ./etc/nginx/conf.d/:/etc/nginx/conf.d/ 8 - ./laravel/public:/var/www/laravel/public 9 ports: 10 - 8080:80 11 links: 12 - phpfpm 13 depends_on: 14 - phpfpm 15 phpfpm: 16 build: 17 context: . 18 dockerfile: ./Dockerfile 19 volumes: 20 - ./laravel:/var/www/laravel 21 links: 22 - mysql 23 depends_on: 24 - mysql 25 environment: 26 - DB_HOST=mysql 27 - DB_DATABASE=blog 28 - DB_USERNAME=root 29 - DB_PASSWORD=root 30 mysql: 31 image: mysql:5.7 32 volumes: 33 # 初期データを投入するSQLが格納されているdir 34 - ./etc/db/mysql_init:/docker-entrypoint-initdb.d 35 # 永続化するときにマウントするdir 36 - ./etc/db/mysql_data:/var/lib/mysql 37 restart: always 38 environment: 39 - DB_HOST=mysql 40 - DB_DATABASE=blog 41 - DB_USERNAME=root 42 - DB_PASSWORD=root 43 ports: 44 - 3306:3306 45 46 phpmyadmin: 47 image: phpmyadmin/phpmyadmin 48 depends_on: 49 - mysql 50 environment: 51 - PMA_ARBITRARY=1 52 - PMA_HOST=mysql 53 - PMA_USER=root 54 - PMA_PASSWORD=root 55 links: 56 - mysql 57 ports: 58 - 3000:80 59 volumes: 60 - /sessions
hosts
1#localhost 2127.0.0.1 localhost 3 4#docker on vagrant 5192.168.33.10 local.laravel 6
試したこと
思いつく範囲で以下を行いましたが、改善できていません。
・問題の切り分け
・記述ミス
・hostsファイルの変更
・.envファイルのIP変更
NginXでのLaravelの起動は確認できています。
補足情報(FW/ツールのバージョンなど)
・Windows10 HomeEdition
・CentOS7/Bento
・Vagrant2.2.4
・Laravel5.5
・MySQL5.7
回答1件
あなたの回答
tips
プレビュー