У мене є основний 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
Якщо це не працює для вашого. Будь-ласка, прикріпіть висновок збірки докерів для перегляду.