не могу найти драйвер в браузере, но из повозки в контейнере и локальных я вижу БД - PullRequest
0 голосов
/ 23 января 2020

Таким образом, после многих попыток кажется, что приложение. Файл docker неправильно выполняет команду RUN, так как драйвер pdo не установлен. Как мне это вылечить?

У меня есть сайт в docker -компонентном файле. Это работало нормально, пока Docker не обновлено сегодня.

Когда я пытаюсь просмотреть сайт в браузере (http://127.0.0.1: 8080 / ) Laravel выдает ошибку

Illuminate\Database\QueryException
could not find driver (SQL: select * from `CMSPages` where `PageSlug` = Homepage limit 1)
http://127.0.0.1:8080/ 

Тем не менее, с локального хоста я могу запустить миграцию и заполнение, и это без проблем соединяется. Я также могу подключиться к БД из heidi на хосте, я подключился к экземпляру PHP, попробовал тинкер php и он также может подключиться к БД и получить данные обратно.

Итак почему я не могу получить доступ к БД из браузера?

Docker -compose.yml

version: '2'

services:
    nginx:
      image: nginx:1.13.12
      ports:
        - "8443:443"
        - "8080:80"
      volumes:
        - ./:/var/www
        - ./docker/nginxconf:/etc/nginx/conf.d
        - ./docker/ssl-cert:/etc/nginx/certs
      working_dir: /var/www
      links:
        - php
    php:
        build:
            context: ./
            dockerfile: docker/app.docker
        volumes:
            - ./:/var/www
        depends_on:
          - db
        links:
            - db
        environment:
            - "DB_PORT=3306"
            - "DB_HOST=db"
    db:
        image: mariadb
        environment:
            - "MYSQL_ROOT_PASSWORD=removed"
            - "MYSQL_DATABASE=removed"
        ports:
            - "33061:3306"

app. docker

FROM php:7-fpm

RUN apt-get update
RUN apt-get install -y libmcrypt-dev mariadb-client
RUN apt-get install libmcrypt4
RUN docker-php-ext-install pdo_mysql

WORKDIR /var/www

...