Приложение Docker lumen выдает php_network_getaddresses: getaddrinfo не удалось: имя или служба неизвестны - PullRequest
0 голосов
/ 29 декабря 2018

Начну с того, что я новичок в Docker.Я пытаюсь проверить концепцию Docker с существующим микросервисом Lumen, но не могу заставить контейнер mysql на моем локальном компьютере работать должным образом.

Когда я запускаю php artisan migrate, я получаю эту ошибку:

SQLSTATE [HY000] [2002] php_network_getaddresses: getaddrinfo не удалось: имя или служба неизвестна

Вот мой файл docker-compose.yml

version: '3.7'

services:
  # Nginx
  web:
    image: nginx:latest
    ports:
      - '8080:80'
    volumes:
      - .:/app
      - .docker/nginx/site.conf:/etc/nginx/conf.d/default.conf
    links:
      - php

  # Database
  db:
    container_name: db
    image: mysql:5.7.24
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    ports:
    - '3306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: local_mysql_password
      MYSQL_DATABASE: partners

  # PHP
  php:
    build: .
    volumes:
      - .:/app
    links:
      - db
    depends_on:
      - db

И мой Dockerfile для образа php

FROM php:7.2-fpm

ADD . /app

WORKDIR /app

RUN apt-get update \
 && apt-get install -y git libpng-dev libxml2-dev libzip-dev zip \
 && docker-php-ext-configure zip --with-libzip \
 && docker-php-ext-install \
    pdo_mysql \
    gd \
    zip \
 && curl -sS https://getcomposer.org/installer \
  | php -- --install-dir=/usr/local/bin --filename=composer

RUN composer install

RUN php artisan migrate

Я использую следующее в моем файле .env для соединения с БД

DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=partners
DB_USERNAME=root
DB_PASSWORD=local_mysql_password

Я попытался настроить порт,изменение имени службы, имени контейнера, параметров ссылки / зависимости_ и еще несколько вещей, которые я не могу вспомнить в данный момент.Я попробовал несколько решений отсюда, Reddit и GitHub, но ни одно не сработало.Есть что-то основное, что я пропускаю?

...