# Containerization Runbook ## Image Build If the repo consumes internal packages from Gitea, pass feed credentials as build args. ```bash docker build --build-arg NUGET_FEED_USERNAME= --build-arg NUGET_FEED_TOKEN= -t agilewebs/furniture-bff:dev . ``` ## Local Run ```bash docker run --rm -p 8080:8080 --name furniture-bff agilewebs/furniture-bff:dev ``` ## Health Probe - Path: `/health` - Fallback path: `/healthz` - Port: `8080` ## Runtime Notes - Requires `FurnitureService__GrpcAddress` to target furniture-service in distributed runs. - Requires `ThalosAuth__BaseAddress` to target thalos-bff session introspection endpoint. - For browser usage, configure `FurnitureBff__AllowedOrigins` with explicit origins (not `*`) so cookie credentials are permitted. - gRPC client contract protobuf is vendored at `src/Furniture.Bff.Rest/Protos/furniture_runtime.proto` to keep image builds repo-local. ## Health Endpoint Consistency - Canonical probe: `/health` - Compatibility probe: `/healthz` - Container port: `8080` ## Demo Integration - Participates in: **furniture** demo compose stack. - Integration artifact path: `greenfield/demo/furniture/docker-compose.yml` ## Known Limitations - Current runtime adapters are still predominantly in-memory for deterministic local/demo behavior. - Demo PostgreSQL seeds validate integration contracts and smoke determinism, but do not yet imply full persistence implementation parity.