前提・実現したいこと
docker+laravelで掲示板アプリの開発を行っています。
一旦完成したので、
gitにpushしたコードを実際に動かすことができるかをチェックするために、git cloneし、dockerの起動,db:seedを実行した際にエラーが発生しました。
エラーまでの手順
git clone
cd sample
docker-compose up -d
docker-compose exec php-fpm bash
php artisan db:seed
発生している問題・エラーメッセージ
Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] Connection refused (SQL: insert into `posts` (`created_at`, `updated_at`, `subject`, `message`, `name`, `user_id`) values (2021-03-28 10:22:09, 1981-07-21 09:37:14, 言いっぱい銀河鉄道線路せんのこ。, てあるんでしょに行くの音ねや草の中へくぐるまわりました。「ああ、そうでした。「今日きのどくがはれからぼうえて来てジョバンニが言いいねえ。ボスといっぱしから飛とんできて赤い腕木うでぎをした。ジョバンニは言いい顔のやぶのしく、頬ほおを吹ふいたのでした。「ああ、どからまあそうなすすみ。おかのシグナルの足をこす。どうして、前のあかは海にいるのでした。月のあの人たちは神かみさまざまにもひどくそくや否いなが。, 津田 直人, 4)) at /var/www/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 PDOException::("SQLSTATE[HY000] [2002] Connection refused") /var/www/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70 2 PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=sample", "sample", "sample", []) /var/www/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70 Please use the argument -v to see more details.
該当のソースコード
sample/docker-compose.yml version: '3' services: nginx: image: nginx:1.17-alpine container_name: "sample_nginx" ports: - "8080:80" volumes: - ./src:/var/www - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf depends_on: - php-fpm php-fpm: build: ./docker/php image: "php-fpm:latest" container_name: "sample_php-fpm" volumes: - ./src:/var/www links: - db depends_on: - db db: image: mysql:8.0.18 container_name: "sample_db" volumes: - ./docker/mysql/conf.d:/etc/mysql/conf.d - ./docker/mysql/data:/var/lib/mysql ports: - 3306:3306 environment: MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} TZ: "Asia/Tokyo" command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
sample/src/.env.example sample/src/.env APP_NAME=Laravel APP_ENV=local APP_KEY= APP_DEBUG=true APP_URL=http://localhost LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= BROADCAST_DRIVER=log CACHE_DRIVER=file QUEUE_CONNECTION=sync SESSION_DRIVER=file SESSION_LIFETIME=120 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 AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
試したこと
docker用の.envファイルの設置ができていなかったことが原因ではないかと思い、docker-compose.ymlと同じ階層に.envファイルの設置を行いました。
ただ、エラーは解消されていない状況です。また、.envファイルが現在2つある状況なのですが、そちらもどのように対処すべきか分かりかねている状況になります。
sample/.env MYSQL_DATABASE=sample MYSQL_USER=sample MYSQL_PASSWORD=sampel MYSQL_ROOT_PASSWORD=root
どうぞよろしくお願い致します。
補足情報(FW/ツールのバージョンなど)
laravel6.5
mysql:8.0
ちなみに,docke+laravelの環境立ち上げは下記の記事を参考に行いました。
サイトURL
回答1件
あなたの回答
tips
プレビュー