CentOS イメージからどうしても Apache が起動できず、諦めて PHP の公式イメージから構築する方向に着手したところ、見慣れないものを見付けたのでメモしておきます。
この辺りを参考にしつつ、手動でパッケージを確認しながらインストールしてみます。
> docker run -it php:7.3-apache /bin/bash
## 略
root@XXXXXXXXXXXX:/var/www/html#
コンテナに入ります。
# apt-get update
Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
Get:2 http://deb.debian.org/debian buster InRelease [121 kB]
Get:3 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
Get:4 http://security.debian.org/debian-security buster/updates/main amd64 Packages [270 kB]
Get:5 http://deb.debian.org/debian buster/main amd64 Packages [7907 kB]
Get:6 http://deb.debian.org/debian buster-updates/main amd64 Packages [7860 B]
Fetched 8424 kB in 3s (2736 kB/s)
Reading package lists... Done
リポジトリの update 。
# apt-get install -y libfreetype6-dev
Reading package lists... Done
## 略
Setting up libfreetype6-dev:amd64 (2.9.1-3+deb10u2) ...
Processing triggers for libc-bin (2.28-10) ...
# apt-get install -y libjpeg62-turbo-dev
Reading package lists... Done
## 略
Setting up libjpeg62-turbo-dev:amd64 (1:1.5.2-2+deb10u1) ...
Processing triggers for libc-bin (2.28-10) ...
apt-get
でパッケージを入れます。
# exit
ここでいったんコンテナから抜けてホスト側に戻り……。
> docker commit XXXXX_XXXXXXXX httpd_deb_man
commit 。
> docker run -it httpd_deb_man /bin/bash
指定した名前で再びコンテナを走らせ、入ります。
さて、参考記事ではこの後 docker-php-ext-install
なるコマンドを実行しているのですが……。
mysqli is a part of php-src. Any extension contained in php-src doesn't need any additional packages if you use PHP docker image. You need just to use
docker-php-ext-install mysqli
phpのイメージで
apt-get
は動作しませんでした、代わりにdocker-php-ext-install
でモジュールを追加します。
私も最初同じように apt-get
で PHP のモジュールをインストールしようとして、ひたすら
E: Unable to locate package mysqli
のように Unable to locate package
エラーを大量に発生させていました……。しかも
ここでパッケージを探し始めて「あるはずなのにインストールできない……」とかやっていました。
Possible values for ext-name:
bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode reflection session shmop simplexml snmp soap sockets sodium spl standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zend_test zip
ちなみに docker-php-ext-install
でインストールできるのはこれらのパッケージの模様。存在しないパッケージをインストールしようとして表示されるエラー文より。
こちらの記事に書いてあるように Xdebug は別途指定が必要の模様。
FROM php:7.4-cli
RUN pecl install redis-5.1.1 \
&& pecl install xdebug-2.8.1 \
&& docker-php-ext-enable redis xdebug
それから、 gd はまた別途指定がありそうです。
……結構前に Rasbian で apt-get
を触って以来だったので、エコシステムが変わる + Docker 固有の事情が絡んでド嵌まりしました……。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント