Debian sidを再起動したあと自動起動するようになっていたDocker Composeコンテナが動いていません.手動で起動しようとすると以下のようなエラー.
$ docker-compose -v Traceback (most recent call last): File "/usr/bin/docker-compose", line 33, in <module> sys.exit(load_entry_point('docker-compose==1.29.2', 'console_scripts', 'docker-compose')()) ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/bin/docker-compose", line 25, in importlib_load_entry_point return next(matches).load() ~~~~~~~~~~~~~~~~~~^^ File "/usr/lib/python3.13/importlib/metadata/__init__.py", line 179, in load module = import_module(match.group('module')) File "/usr/lib/python3.13/importlib/__init__.py", line 88, in import_module return _bootstrap._gcd_import(name[level:], package, level) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in _gcd_import File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 1026, in exec_module File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 5, in <module> import pipes ModuleNotFoundError: No module named 'pipes'
そういえば少し前にPythonのversionが上がったのでそれが関係していそうです.
pipes関連のパッケージはdocker.io/docker-composeパッケージの依存には見当たりません.apt-cache searchでさがしても見当たりません.
pipesはPython 3.11で廃止され,3.13で削除されたようです.そしてDebian sidのPythonは少し前に3.13に上がっています.
$ python3 --version Python 3.13.1 $ dpkg-query -W python3 python3 3.13.1-2
DebianとしてはDocker Comose v1は廃止されているのでv2に上げたいけどgoなどの依存パッケージが欠如しているためv2のパッケージ化が止まっているようです.
という感じでPython 3.13にアップグレードしたDebian sidではdocker-composeパッケージは動かなくなっています.
恐らくDocker Compose v2が降りてくるまでは動かないのかなと.
ということでとりあえずはDocker謹製のものを導入して凌ぐ必要がありそうです.
Docker.com謹製Dockerを導入
以下のページを参考に導入しました.
Debianの関連パッケージを削除
$ sudo apt remove docker.io docker-cli docker-doc docker-compose podman-docker containerd runc
DockerのPGP鍵の登録
$ sudo apt install ca-certificates curl $ sudo install -m 0755 -d /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo tee /etc/apt/keyrings/docker.asc $ gpg --show-keys /etc/apt/keyrings/docker.asc pub rsa4096 2017-02-22 [SCEA] 9DC858229FC7DD38854AE2D88D81803C0EBFCD88 uid Docker Release (CE deb) <docker@docker.com> sub rsa4096 2017-02-22 [S] $ sudo chmod a+r /etc/apt/keyrings/docker.asc $ w3m -dump https://download.docker.com/linux/debian/dists/ Index of linux/debian/dists/ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ../ bookworm/ bullseye/ buster/ jessie/ stretch/ wheezy/ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ $ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ bookworm stable" | \ sudo tee /etc/apt/sources.list.d/docker.list deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable $ sudo apt update $ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin $ docker --version Docker version 27.5.0, build a187fa5 $ docker compose version Docker Compose version v2.32.4
Note | trixie(testing), sid(unstable), experimentalのパッケージはないようなのでbookworm(stable)用を利用しました. |
Docker動作確認
$ docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
Docker Cmposeも動作するのを確認
$ cd $PATH_TO_COMPOSE $ docker compose up :