Docker container内のpeclインストールでmongodbがインストールできなくなっていた

Docker container内のpeclインストールでmongodbがインストールできなくなっていた

何もしていないのに動かなくなった!

みたいなニュアンスで書いてしまいました。申し訳ございませんでした。

事象

久しぶりに開発環境の Docker を build (正確には docker-compose up ) したらこんなエラーが出て php 用の MongoDB Client がインストールできなかった。

Package "mongodb" does not have REST info xml available
install failed

なんだ?と思って色々と調べていた。たまたま用があって sudo nala update ( apt の変わりに nala 使ってます ) をしたら package list が ignore されていて「おや?」となった。

Ignored:   https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/5.0 InRelease

上記は docker host 側の事象だが、なんかネットワークおかしいのか?ということになった。

/etc/docker/daemon.json で DNS を設定してみてる

/etc/docker/daemon.json がない場合は新規作成する。

{
    "dns":
    [
        "8.8.8.8",
        "8.8.4.4"
    ]
}

終わったら docker を再起動する

sudo systemctl restart docker

再度、docker-compose up してみた結果…

No releases available for package "pecl.php.net/mongodb"
install failed

なんかメッセージかわったけどダメだった(´;ω;`)ブワッ

pear の proxy 設定をしてみる

Dockerfile の pecl install mongodb ( MongoDB をインストールしているところ ) の前に設定を追加してみる。

:
RUN set -xe \
    && apt-get update -y \
    :
+   && pear config-set http_proxy http://140.227.69.124:3180 \
    && pecl install mongodb \
    :

proxy server は適当に稼働率が高いのを設定した。
freeproxylists.net/ja/?c=JP&pt=&pr=..

やっとインストールすることができました。この修正を commit するか?は悩ましいですが… そんじゃまた。