Docker и Laravel. Не получается сделать миграцию: Name or service not known

Я посмотрел множество тредов с обсуждением этой проблемы, но ничего не помогло. Ошибка при выполнении команды php artisan migrate:

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for db failed: Name or service not known (Connection: mysql, SQL: select * from information_schema.tables where table_schema = electronic_shop and table_name = migrations and table_type = 'BASE TABLE')

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:801
    797▕                     $this->getName(), $query, $this->prepareBindings($bindings), $e
    798▕                 );
    799▕             }
    800▕ 
  ➜ 801▕             throw new QueryException(
    802▕                 $this->getName(), $query, $this->prepareBindings($bindings), $e
    803▕             );
    804▕         }
    805▕     }

  i   Network address not found: Did you mean to use `sail artisan`? 
      https://laravel.com/docs/sail#executing-artisan-commands

      +38 vendor frames 

  39  artisan:35
      Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

docker-compose.yml

version: '3'

services:
  nginx:
    image: nginx:1.25
    volumes:
      - ./:/var/www
      - ./_docker/nginx/conf.d/:/etc/nginx/conf.d
    ports:
      - "3340:80"
    depends_on:
      - app
    container_name: shop_nginx

  app:
    build:
      context: .
      dockerfile: _docker/app/Dockerfile
    volumes:
      - ./:/var/www
    depends_on:
      - db
    container_name: shop_app

  db:
    image: mysql:8.1.0
    restart: always
    volumes:
      - ./tmp/db:/var/lib/mysql
    environment:
      - MYSQL_DATABASE="${DB_DATABASE}"
      - MYSQL_ROOT_PASSWORD="${DB_PASSWORD}"
    ports:
      - "3341:3306"
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
    container_name: shop_db

  phpmyadmin:
    image: phpmyadmin:5.2.1
    restart: always
    ports:
      - "3342:80"
    depends_on:
      - db
    environment:
        - PMA_ARBITRARY=1
    container_name: shop_phpmyadmin

.env

DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=electronic_shop
DB_USERNAME=root
DB_PASSWORD=root

Dockerfile

FROM php:8.3.0beta3-fpm

RUN apt-get update && apt-get install -y \
      apt-utils \
      libpq-dev \
      libpng-dev \
      libzip-dev \
      zip unzip \
      git && \
      docker-php-ext-install pdo_mysql && \
      docker-php-ext-install bcmath && \
      docker-php-ext-install gd && \
      docker-php-ext-install zip && \
      apt-get clean && \
      rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

COPY ./_docker/app/php.ini /usr/local/etc/php/conf.d/php.ini

# Install composer
ENV COMPOSER_ALLOW_SUPERUSER=1
RUN curl -sS https://getcomposer.org/installer | php -- \
    --filename=composer \
    --install-dir=/usr/local/bin

# RUN apt-get update && apt-get install -y ca-certificates curl gnupg
# RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
# RUN NODE_MAJOR=20
# RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list

WORKDIR /var/www

Ответы (0 шт):