前提・実現したいこと
初めての質問になります。質問するにあたり記載事項が不足していたらご指摘ください。
Dockerを使ってLaravelの環境構築をしています。
MySQLとの接続がうまくいかず、⬇︎のコマンドを入力すると
$ docker-compose exec app php artisan migrate
以下のエラーが発生します。
発生している問題・エラーメッセージ
Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = hachinohe and table_name = migrations and table_type = 'BASE TABLE')
該当のソースコード
docker-compose.yml
version: "3" services: app: build: context: ./docker/php args: - TZ=${TZ:-Asia/Tokyo} ports: - ${APP_PORT:-18000}:8000 volumes: - ${PROJECT_PATH:-./src}:/work - ./docker/ash:/etc/profile.d - ./docker/php/psysh:/root/.config/psysh - ./logs:/var/log/php - ./docker/php/php.ini:/usr/local/etc/php/php.ini working_dir: /work environment: - DB_CONNECTION=mysql - DB_HOST=db - DB_DATABASE=${DB_NAME:-homestead} - DB_USERNAME=${DB_USER:-homestead} - DB_PASSWORD=${DB_PASS:-secret} - TZ=${TZ:-Asia/Tokyo} - MAIL_HOST=${MAIL_HOST:-mail} - MAIL_PORT=${MAIL_PORT:-1025} - CACHE_DRIVER=redis - SESSION_DRIVER=redis - QUEUE_DRIVER=redis - REDIS_HOST=redis web: image: nginx:1.17-alpine depends_on: - app ports: - ${WEB_PORT:-10080}:80 volumes: - ${PROJECT_PATH:-./src}:/work - ./logs:/var/log/nginx - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf environment: - TZ=${TZ:-Asia/Tokyo} db: image: mysql:8.0 volumes: - db-store:/var/lib/mysql - ./logs:/var/log/mysql - ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf environment: - MYSQL_DATABASE=${DB_NAME:-homestead} - MYSQL_USER=${DB_USER:-homestead} - MYSQL_PASSWORD=${DB_PASS:-secret} - MYSQL_ROOT_PASSWORD=${DB_PASS:-secret} - TZ=${TZ:-Asia/Tokyo} ports: - ${DB_PORT:-13306}:3306 db-testing: image: mysql:8.0 volumes: - ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf tmpfs: - /var/lib/mysql - /var/log/mysql environment: - MYSQL_DATABASE=${DB_NAME:-homestead} - MYSQL_USER=${DB_USER:-homestead} - MYSQL_PASSWORD=${DB_PASS:-secret} - MYSQL_ROOT_PASSWORD=${DB_PASS:-secret} - TZ=${TZ:-Asia/Tokyo} ports: - ${DB_TESTING_PORT:-13307}:3306 node: image: node:12.14-alpine tty: true volumes: - ${PROJECT_PATH:-./src}:/work working_dir: /work redis: image: redis:5.0-alpine volumes: - redis-store:/data mail: image: mailhog/mailhog ports: - ${MAILHOG_PORT:-18025}:8025 volumes: db-store: redis-store:
.env(laravel側)
APP_NAME=Laravel APP_ENV=local APP_KEY=base64:gmN/TKWH9K55J63tTwyfCxUj5IyJ0fuMD5FQuyMW5KE= APP_DEBUG=true APP_URL=http://localhost LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=db DB_PORT=3307 DB_DATABASE=hachinohe DB_USERNAME=hachinohe DB_PASSWORD=hachinohe 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 MAIL_FROM_ADDRESS=null MAIL_FROM_NAME="${APP_NAME}" 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}"
.env(docker側)
#COMPOSE_PROJECT_NAME=myproject PROJECT_PATH=./src TZ=Asia/Tokyo WEB_PORT=10070 APP_PORT=18000 DB_PORT=3307 DB_TESTING_PORT=13307 DB_NAME=hachinohe DB_USER=hachinohe DB_PASS=hachinohe MAILHOG_PORT=18025 MAIL_HOST=mail MAIL_PORT=1025
試したこと
調べてみたところ.envファイルのDB_HOSTの値が怪しいと思い、DB_HOST=に
db、hachinohe_db、mysql等の値を入れてマイグレーションを実行しましたが、うまくいきません。
dockerに詳しい方、お助けください。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/01 14:55
2020/02/02 02:20