ある日、
Minifluxに接続できないことに気付く。docker compose logs miniflux
でログ見てもエラーを吐いてない。とりあえず再起動するか、とdocker compose restart miniflux
すると以下のエラー。
$ docker compose restart miniflux
[+] Restarting 0/1
⠹ Container miniflux Restarting 0.2s
Error response from daemon: Cannot restart container 1d73e6a0d722efc310081857092cd962cb06e096ff86c1e9b3f6e594148b2021: driver failed programming external connectivity on endpoint miniflux (c9a7a47281192d1f8ff7d5406288e46596d176c75c4b6363408150c3e97c08a6): failed to bind port 0.0.0.0:8280/tcp: fork/exec /usr/bin/rootlesskit-docker-proxy: no such file or directory
設定ファイルを見直す
最初はnginx
、docker-compose.yaml
の方を疑ったのだけど、前から同じ設定をしているので、特に問題はないというか、直すべきところがみつからない。
/etc/nginx/sites-available/domain
###
# miniflux
###
location /miniflux/ {
proxy_pass http://127.0.0.1:8280/miniflux/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
}
docker-compose.yaml
miniflux:
container_name: miniflux
image: miniflux/miniflux:latest
ports:
- "127.0.0.1:8280:8080"
restart: unless-stopped
environment:
- BASE_URL=https://xxx.com/miniflux/
- DATABASE_URL=postgres://miniflux:xxxx@postgresql-server/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
networks:
- app-net
portを見直す
failed to bind port 0.0.0.0:8280/tcp
となっているので、最近、インストールしたアプリでポートが被っているのではないか?と確認するも…そんな感じではない。
$ netstat -atn
稼働中のインターネット接続 (サーバと確立)
Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態
・・・後略・・・
$ netstat -atn | grep 8280
というか、Dockerのポートマッピングは、joplin
、navidrome
など他のDockerコンテナでもやってるのに、何故、miniflux
だけ…書き方はnginxでもdocker-compose.yamlでも一緒だけどなぁ。
rootlesskitのインストールを勧められるが中断
では、
Geminiに聞いてみるとrootlesskit
をインストールしろ的なことを言われる。
$ dpkg -s rootlesskit
dpkg-query: パッケージ 'rootlesskit' はまだインストールされておらず情報の利用は不可能です
Use dpkg --info (= dpkg-deb --info) to examine archive files.
$ ls /usr/bin/rootlesskit-docker-proxy
ls: '/usr/bin/rootlesskit-docker-proxy' にアクセスできません: そのようなファイルやディレクトリはありません
$ sudo apt install rootlesskit
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
以下のパッケージは「削除」されます:
docker-ce-rootless-extras
以下のパッケージが新たにインストールされます:
rootlesskit
アップグレード: 0 個、新規インストール: 1 個、削除: 1 個、保留: 0 個。
4,102 kB のアーカイブを取得する必要があります。
この操作後に追加で 5,150 kB のディスク容量が消費されます。
続行しますか? [Y/n] n
中断しました。
ということでインストールしようとするとdocker-ce-rootless-extras
が削除されるらしいので、中断。更に調べると
v28 rootlesskit-docker-proxy not found · Issue #49519 · moby/mobyという課題を発見。
$ docker version
Client: Docker Engine - Community
Version: 28.0.2
解決策
まあ、細けぇことはいいので、とりあえず、その場しのぎてきに対応したいと思ったら、
To resolve this (before the new version) just copy the rootlesskit-docker-proxy.sh from the Debian package (link in the previous post) to /usr/bin/rootlesskit-docker-proxy.sh Then Docker work great again (no need to restart Docker or reboot).
とあったので、これを行う。 deb ファイルを落してきて解凍して、その中から rootlesskit-docker-proxy をコピーする。
$ wget https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-ce-rootless-extras_27.5.1-1~ubuntu.22.04~jammy_amd64.deb
--2025-03-24 07:17:36-- https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-ce-rootless-extras_27.5.1-1~ubuntu.22.04~jammy_amd64.deb
download.docker.com (download.docker.com) をDNSに問いあわせています... 18.172.31.28, 18.172.31.47, 18.172.31.124, ...
download.docker.com (download.docker.com)|18.172.31.28|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 9603142 (9.2M) [binary/octet-stream]
‘docker-ce-rootless-extras_27.5.1-1~ubuntu.22.04~jammy_amd64.deb’ に保存中
docker-ce-rootless-extras_27.5.1-1~ubuntu.2 100%[========================================================================================>] 9.16M 6.92MB/s in 1.3s
2025-03-24 07:17:38 (6.92 MB/s) - ‘docker-ce-rootless-extras_27.5.1-1~ubuntu.22.04~jammy_amd64.deb’ へ保存完了 [9603142/9603142]
$ dpkg-deb -x docker-ce-rootless-extras_27.5.1-1~ubuntu.22.04~jammy_amd64.deb docker-ce-rootless-extras
$ ls docker-ce-rootless-extras/usr/bin/
dockerd-rootless-setuptool.sh dockerd-rootless.sh rootlesskit rootlesskit-docker-proxy
$ sudo cp docker-ce-rootless-extras/usr/bin/rootlesskit-docker-proxy /usr/bin/
[sudo] arimasou16 のパスワード:
$ ls -l /usr/bin/rootlesskit-docker-proxy
-rwxr-xr-x 1 root root 8198888 3月 24 07:23 /usr/bin/rootlesskit-docker-proxy
$
すると、本当に問題なく起動できるようになった…まぁ、今後のアップデートとか不具合おきるかも知れんけど。
$ docker compose restart miniflux
[+] Restarting 1/1
✔ Container miniflux Started 1.0s