/ / Як увімкнути pdo_mysql у зображенні docker php - php, mysql, docker

Як включити pdo_mysql у форматі php docker image - php, mysql, docker

У мене є основний Dockerfile із наступним у:

FROM php:7.1-apache
RUN apt-get update && docker-php-ext-install pdo_mysql
COPY . /var/www
EXPOSE 80

У мене є файл docker-compose.yml

version: "3"
services:
app:
build: .
ports:
- "80:80"
volumes:
- .:/var/www
depends_on:
- mysql
mysql:
image: mysql:8
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: "app"
MYSQL_USER: "app"
MYSQL_PASSWORD: "app"
MYSQL_ROOT_PASSWORD: "test"

Я тоді побіг docker build -t app . && docker-compose up в корені проекту. Начебто все складається правильно, але при виведенні phpinfo Я не бачу розширення mysql_pdo.

введіть опис зображення тут

Чи є якісь кроки, яких я пропускаю?

Відповіді:

5 за відповідь № 1

Докер-файл, який я використовую, це ...

FROM php:7.1-apache
COPY apache2.conf /etc/apache2
RUN docker-php-ext-install mysqli pdo pdo_mysql

Зверніть увагу на mysqli та pdo там, щоб дозволити біт PDO / mysql.


1 для відповіді № 2

Це був аналогічна помилка у програмі docker php 62:

Як виявилося, мені потрібно видалити старі зображення та відновити їх заново.

Тому що я завантажив зображення та відредагував його. Тому мені потрібно видалити старе зображення і відновити його, щоб застосувати зміни.

docker rm видаляє лише контейнери. Переконайтесь, що ви видалили зображення як і раніше.

Також перевірте, чи є Докерфайл, як цей може бути більш надійним / повним:

# PHP extensions
RUN 
docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd 
&& docker-php-ext-configure mysqli --with-mysqli=mysqlnd 
&& docker-php-ext-install pdo_mysql 
...

-1 для відповіді № 3

Я використовую це і добре працює для мене.

RUN apt-get update 
&& apt-get install -y git zlib1g-dev 
&& docker-php-ext-install pdo pdo_mysql zip

Якщо це не працює для вашого. Будь-ласка, прикріпіть висновок збірки докерів для перегляду.