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