laravel как служба создания докеров - [QueryException] не удалось найти драйвер - PullRequest
0 голосов
/ 31 января 2019

Я создаю контейнер для своего проекта laravel, используя этот файл docker:

FROM composer:1.8

RUN apk add --no-cache libpng libpng-dev libjpeg-turbo-dev libwebp-dev zlib-dev libxpm-dev
RUN docker-php-ext-install pdo mbstring gd
RUN docker-php-ext-enable gd

WORKDIR /app
COPY . /app
RUN composer install

CMD php artisan serve --host=0.0.0.0 --port=8181
EXPOSE 8181

, затем пытаюсь использовать его в качестве службы внутри docker-compose.yml файла:

version: '3'
services:
  webservice:
    image: private.repo.com/my_user/webservice
    ports:
      - '80:8181'
    depends_on:
      - mariadb
  mariadb:
    image: mariadb
    volumes:
      - './db:/var/lib/mysql'
    environment:
      - MYSQL_ROOT_PASSWORD=some_password
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - mariadb
    ports:
      - '443:80'
    environment:
      - PMA_HOST=mariadb
      - PMA_PORT=3306

сейчасЯ получаю ошибку 500, когда хочу позвонить своим API.(ошибка [QueryException] не удалось найти драйвер)

Я искал об этом, и все, что я обнаружил, это то, что обычно это происходит, потому что что-то не так с .env file

это мойФайл .env в проекте laravel

DB_CONNECTION=mysql
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=my_db_name
DB_USERNAME=my_db_user
DB_PASSWORD=my_db_pass

DB_HOST совпадает с моим файлом docker-compose.yml.

Я также пытался экспортировать порт 3306 в моем mariadb сервис, но он тоже не работал

где я ошибся, просьба помочь

----------- update ----------

Я также проверил ip службы mariadb и поместил его в свой контейнер служб (пока они оба работают, не выключая их), но проблема остается.

1 Ответ

0 голосов
/ 06 февраля 2019

это было на самом деле довольно просто.

Мне тоже пришлось установить pdo_mysql

Теперь мой файл Docker выглядит так:

FROM composer:1.8

RUN apk add --no-cache libpng libpng-dev libjpeg-turbo-dev libwebp-dev zlib-dev libxpm-dev
RUN docker-php-ext-install pdo mbstring gd pdo_mysql # this line is changed
RUN docker-php-ext-enable gd

WORKDIR /app
COPY . /app
RUN composer install

CMD php artisan serve --host=0.0.0.0 --port=8181
EXPOSE 8181

Я нашел решение здесь:https://github.com/docker-library/php/issues/62#issuecomment-70306737

...