From 790b13fe1978ec4516c2e265dc0c5c3bb69e91a7 Mon Sep 17 00:00:00 2001 From: Zheng Feng Date: Thu, 9 Jul 2026 17:12:53 +0800 Subject: [PATCH] ci(containers): bake postgres extra into published backend image (#4015) The tag-publish workflow (container.yaml) built backend/Dockerfile with no build-args, so UV_EXTRAS was empty and the published *-backend image shipped without the Postgres driver (only --extra redis). Multi-replica deployments (K8s/Helm) that need shared Postgres persistence instead of file-based SQLite could not use the release image without rebuilding it. Pass UV_EXTRAS=postgres so the release image includes deerflow-harness[postgres]. Additive only: single-replica sqlite/redis setups keep working; the Postgres driver is added, mirroring how redis is already always baked in. --- .github/workflows/container.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/container.yaml b/.github/workflows/container.yaml index 336c8f3cb..98bf835cb 100644 --- a/.github/workflows/container.yaml +++ b/.github/workflows/container.yaml @@ -51,6 +51,12 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + # Bake the `postgres` extra into the published image so multi-replica + # deployments (K8s/Helm) can use shared Postgres persistence instead of + # file-based SQLite. sqlite/redis-only single-replica setups still work; + # this only adds the Postgres driver. See backend/Dockerfile `UV_EXTRAS`. + build-args: | + UV_EXTRAS=postgres - name: Generate artifact attestation uses: actions/attest-build-provenance@e8998f949152b193b063cb0ec769d69d929409be #v2.4.0