Replace vendored docker-compose with podman-compose
podman-compose and docker-compose aren't discovered the same way by `podman compose` - verified live (a fake-binary test reading podman's own provider-search error output) that docker-compose is searched for by exact path across a fixed list of CLI-plugin directories, while podman-compose is instead looked up as a plain command on $PATH. This package installs to /usr/local/bin/podman-compose accordingly, not under any cli-plugins/ directory. Unlike docker-compose (a single static Go binary), podman-compose is a Python script with two runtime dependencies neither of which ship with Unraid's own Python3 - PyYAML and python-dotenv, vendored here as plain pure-Python source (no C extension build; PyYAML's own fallback handles its optional C accelerator being absent). Verified end-to-end on a real host: with the previous docker-compose binary temporarily moved aside to confirm podman-compose was actually the one invoked, `podman compose up/ps/down` ran a real compose project correctly, including a live HTTP check against the started service. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+29
-15
@@ -120,22 +120,36 @@ NFTABLES_VERSION="1.0.1"
|
||||
NFTABLES_SRC_URL="http://slackware.osuosl.org/slackware64-15.0/slackware64/n/nftables-${NFTABLES_VERSION}-x86_64-1.txz"
|
||||
NFTABLES_SRC_SHA256="239e70d48edd6667ce875ff0d339b6f63c1fc94c472524d58772310b1006d31c"
|
||||
|
||||
# --- docker-compose ----------------------------------------------------------
|
||||
# https://github.com/docker/compose — the Compose v2 CLI-plugin binary
|
||||
# (Go, not the older Python podman-compose). `podman compose` (backing
|
||||
# --- podman-compose -----------------------------------------------------------
|
||||
# https://github.com/containers/podman-compose — `podman compose` (backing
|
||||
# webui/plugins/podman/ajax/compose.php, the WebUI's Compose panel) has no
|
||||
# compose implementation of its own — it searches a fixed set of
|
||||
# CLI-plugin directories for a binary named exactly "docker-compose" and
|
||||
# shells out to it. Without one present, every Compose panel action fails
|
||||
# outright (found by live-testing: it only worked on the test host because
|
||||
# that host happened to already have Docker's own compose plugin
|
||||
# installed from an unrelated, pre-existing Docker setup — a clean Unraid
|
||||
# install has none). Upstream publishes a prebuilt static x86_64 binary
|
||||
# release asset (verified via `ldd`: "not a dynamic executable") plus a
|
||||
# matching .sha256 sidecar — no from-source build needed.
|
||||
DOCKER_COMPOSE_VERSION="5.3.1"
|
||||
DOCKER_COMPOSE_SRC_URL="https://github.com/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSION}/docker-compose-linux-x86_64"
|
||||
DOCKER_COMPOSE_SRC_SHA256="f9ebc6ebdb19d769b793c245a736caaeb198c62587f13b25c660c13b4987f959"
|
||||
# compose implementation of its own; it needs an external "compose
|
||||
# provider" command. This project previously vendored docker/compose (the
|
||||
# Go CLI-plugin binary) for that role, found by podman searching a fixed
|
||||
# set of CLI-plugin directories for a binary named exactly
|
||||
# "docker-compose". podman-compose is looked up differently — verified
|
||||
# live (placing a fake executable and watching podman's own error output
|
||||
# list its search order) that it's found as a plain command on $PATH,
|
||||
# not from those same CLI-plugin directories — so it's installed as
|
||||
# /usr/local/bin/podman-compose, not under any cli-plugins/ path.
|
||||
#
|
||||
# Unlike docker-compose, podman-compose is a single Python script, not a
|
||||
# compiled binary — Unraid ships Python3 itself, but not either of its two
|
||||
# runtime dependencies (PyYAML, python-dotenv), so those are vendored
|
||||
# alongside it as plain pure-Python source (no C extension build; PyYAML's
|
||||
# own __init__.py falls back gracefully when its optional C accelerator
|
||||
# isn't importable — verified by reading it, not assumed).
|
||||
PODMAN_COMPOSE_VERSION="1.6.0"
|
||||
PODMAN_COMPOSE_SRC_URL="https://raw.githubusercontent.com/containers/podman-compose/v${PODMAN_COMPOSE_VERSION}/podman_compose.py"
|
||||
PODMAN_COMPOSE_SRC_SHA256="10df1662477a673dc803c03e89c1bc1fba6c8c091e716fb6c7dd09c0081e1255"
|
||||
|
||||
PYYAML_VERSION="6.0.3"
|
||||
PYYAML_SRC_URL="https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-${PYYAML_VERSION}.tar.gz"
|
||||
PYYAML_SRC_SHA256="d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f"
|
||||
|
||||
PYTHON_DOTENV_VERSION="1.2.2"
|
||||
PYTHON_DOTENV_SRC_URL="https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-${PYTHON_DOTENV_VERSION}.tar.gz"
|
||||
PYTHON_DOTENV_SRC_SHA256="2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3"
|
||||
|
||||
# =============================================================================
|
||||
# Slackware package BUILD number (not upstream version). Bump this if a
|
||||
|
||||
Reference in New Issue
Block a user