Docker lumen应用抛出php_network_getaddresses:getaddrinfo失败:名称或服务未知

时间:2018-12-29 18:39:36

标签: php mysql laravel docker lumen

首先,我是Docker的新手。我正在尝试使用现有的Lumen微服务对Docker进行概念验证,但似乎无法使本地的mysql容器正常工作。

当我运行php artisan migration时,出现此错误:

  

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

还有用于php映像的Dockerfile

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

我尝试调整端口,更改服务名称,container_name,links / depends_on设置以及其他一些我目前不记得的事情。我从这里,reddit和github尝试了多种解决方案,但没有一个起作用。我有什么基本要忽略的东西吗?

0 个答案:

没有答案