基本的な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拡張が表示されません。
足りないステップはありますか?
私が使用するDockerファイルは...
FROM php:7.1-Apache
COPY Apache2.conf /etc/Apache2
RUN docker-php-ext-install mysqli pdo pdo_mysql
PDO/mysqlビットを許可するために、mysqliとpdoもそこにあることに注意してください。
PHP MySQLに接続するためのPDOおよびmysqli拡張機能をDockerfileに追加するには:
RUN docker-php-ext-install pdo pdo_mysql
# for mysqli if you want
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
作成方法の詳細については、この ページ をご覧ください。
docker php issue 62に同様のエラーがありました :
古い画像を削除して再構築する必要があることがわかりました。
原因画像をダウンロードして編集しました。変更を適用するには、古いイメージを削除して再構築する必要があります。
docker rmはコンテナーのみを削除します。前にも画像を削除してください。
このようなDockerfile がより堅牢/完全であるかどうかも確認します。
# 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 \
...