diff --git a/containers/devpi/container.py b/containers/devpi/container.py deleted file mode 100644 index 0067e95..0000000 --- a/containers/devpi/container.py +++ /dev/null @@ -1,56 +0,0 @@ -"""devpi PyPI server and caching proxy — native Dagger build. - -Single-stage build: install devpi-server and devpi-web into a Python slim image. -""" - -import dagger -from dagger import dag - -from blumeops.containers import oci_labels - -VERSION = "6.19.3" - -DEVPI_WEB_VERSION = "5.0.2" -PYTHON_BASE = "python:3.12-slim" - - -async def build(src: dagger.Directory) -> dagger.Container: - ctr = ( - dag.container() - .from_(PYTHON_BASE) - .with_exec( - [ - "pip", - "install", - "--no-cache-dir", - f"devpi-server=={VERSION}", - f"devpi-web=={DEVPI_WEB_VERSION}", - ] - ) - .with_exec( - [ - "useradd", - "-r", - "-u", - "1000", - "devpi", - ] - ) - .with_exec(["mkdir", "-p", "/devpi"]) - .with_exec(["chown", "devpi:devpi", "/devpi"]) - .with_file( - "/usr/local/bin/start.sh", - src.file("containers/devpi/start.sh"), - ) - .with_exec(["chmod", "+x", "/usr/local/bin/start.sh"]) - .with_user("devpi") - .with_workdir("/devpi") - .with_exposed_port(3141) - .with_entrypoint(["/usr/local/bin/start.sh"]) - ) - return oci_labels( - ctr, - title="devpi", - description="devpi PyPI server and caching proxy", - version=VERSION, - ) diff --git a/containers/devpi/start.sh b/containers/devpi/start.sh deleted file mode 100644 index 8ed46a2..0000000 --- a/containers/devpi/start.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -set -e - -SERVERDIR="${DEVPI_SERVERDIR:-/devpi}" -HOST="${DEVPI_HOST:-0.0.0.0}" -# Note: Can't use DEVPI_PORT - Kubernetes auto-sets it for service discovery -PORT="${DEVPI_LISTEN_PORT:-3141}" -OUTSIDE_URL="${DEVPI_OUTSIDE_URL:-}" - -# Check if devpi is initialized -if [ ! -f "$SERVERDIR/.serverversion" ]; then - echo "Initializing devpi server..." - - if [ -z "$DEVPI_ROOT_PASSWORD" ]; then - echo "ERROR: DEVPI_ROOT_PASSWORD environment variable must be set for initialization" - exit 1 - fi - - devpi-init --serverdir "$SERVERDIR" --root-passwd "$DEVPI_ROOT_PASSWORD" - echo "Devpi initialized successfully" -fi - -# Build command -CMD=(devpi-server --serverdir "$SERVERDIR" --host "$HOST" --port "$PORT") - -if [ -n "$OUTSIDE_URL" ]; then - CMD+=(--outside-url "$OUTSIDE_URL") -fi - -echo "Starting devpi-server..." -exec "${CMD[@]}" diff --git a/docs/changelog.d/+remove-devpi-container-build.misc.md b/docs/changelog.d/+remove-devpi-container-build.misc.md new file mode 100644 index 0000000..8ebec54 --- /dev/null +++ b/docs/changelog.d/+remove-devpi-container-build.misc.md @@ -0,0 +1 @@ +Removed the now-unused `containers/devpi/` Dagger build artifact. Devpi runs natively on indri via uv venv; the container image is no longer referenced anywhere. Doc examples in `docs/reference/tools/dagger.md` updated to use `miniflux` as the example container name. diff --git a/docs/reference/tools/dagger.md b/docs/reference/tools/dagger.md index 89be50c..81c5caf 100644 --- a/docs/reference/tools/dagger.md +++ b/docs/reference/tools/dagger.md @@ -50,16 +50,16 @@ New containers for indri (k8s runner) should use `container.py`. Ringtail contai ```bash # Build a container -dagger call build --src=. --container-name=devpi +dagger call build --src=. --container-name=miniflux # Drop into container shell for inspection -dagger call build --src=. --container-name=devpi terminal +dagger call build --src=. --container-name=miniflux terminal # Debug a failure interactively -dagger call --interactive build --src=. --container-name=devpi +dagger call --interactive build --src=. --container-name=miniflux # Publish a container to zot -dagger call publish --src=. --container-name=devpi --version=v1.1.0 +dagger call publish --src=. --container-name=miniflux --version=v1.1.0 # Build a nix container (no local nix required) dagger call build-nix --src=. --container-name=ntfy export --path=./ntfy.tar.gz