#!/bin/bash # ============================================================================= # packages/docker-compose/docker-compose.SlackBuild # # Packages the official prebuilt docker/compose v2 release binary — not # built from source, see versions.env's DOCKER_COMPOSE_* block for why. # `podman compose` (backing webui/plugins/podman/ajax/compose.php) has no # compose implementation of its own; it shells out to an "external compose # provider" it discovers by searching a fixed list of CLI-plugin # directories for a binary literally named `docker-compose` (paths # extracted from the pinned podman binary itself: # `strings /usr/bin/podman | grep cli-plugins`). Without one present, # every Compose panel action fails outright (found by live-testing against # a real Unraid install — it only worked there because that host happened # to already have Docker's own compose plugin from an unrelated setup). # # Installed to /usr/local/lib/docker/cli-plugins/docker-compose — one of # podman's search paths, deliberately the /usr/local/ one rather than # /usr/lib/docker/cli-plugins so this package never collides with (or # gets silently shadowed by) a genuine Docker installation's own compose # plugin on hosts that also run Unraid's built-in Docker support. # ============================================================================= set -eu REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" # shellcheck source=/dev/null . "$REPO_ROOT/scripts/lib/slackbuild-common.sh" # shellcheck source=/dev/null . "$REPO_ROOT/versions.env" VERSION="$DOCKER_COMPOSE_VERSION" ARCH="$PKG_ARCH" BUILD="$PKG_BUILD" TAG="$PKG_TAG" sb_init "docker-compose" binary=$(sb_fetch_and_verify "$DOCKER_COMPOSE_SRC_URL" "$DOCKER_COMPOSE_SRC_SHA256" "docker-compose-$VERSION") install -D -m 0755 "$binary" "$PKG/usr/local/lib/docker/cli-plugins/docker-compose" # The release only ships the raw binary (+ checksum/signature files, no # LICENSE/README asset) — write minimal doc metadata by hand instead of # using sb_install_docs, which expects real files to copy from disk. docdir="$PKG/usr/doc/docker-compose-$VERSION" mkdir -p "$docdir" { echo "docker-compose (docker/compose v2 CLI plugin) $VERSION" echo "https://github.com/docker/compose" echo "Prebuilt static binary, packaged as-is by unraid-podman — see" echo "versions.env for the pinned release URL and SHA256." } > "$docdir/README" { echo "Built by unraid-podman from upstream's prebuilt release binary." echo "Package: docker-compose $VERSION" echo "Built: $(date -u +%Y-%m-%dT%H:%M:%SZ)" } > "$docdir/unraid-podman.build-info" sb_make_package "$VERSION" "$ARCH" "$BUILD" "$TAG"