Add slim Phase 1 task 1.11 (Dockerfile + Gitea workflow) for pilot deploy

- Multi-stage Dockerfile (Node 22 alpine, BuildKit cache, non-root user).
  HEALTHCHECK and metrics port (9090) deferred until task 1.10 ships;
  comments document the resume.
- .gitea/workflows/build.yml — single build job following the pattern
  of other TRM repos (no services/container, ubuntu-latest direct).
  Tests + typecheck + lint inline; image tagged :main.
- compose.dev.yaml — local-build variant for verifying Dockerfile
  changes pre-push. Production deploy lives in the sibling deploy/ repo.
- .env.example documenting all runtime env vars.
- README updated to point at deploy/ for production and explain CI.
- Task 1.11 marked done (slim variant) in ROADMAP and task file.
This commit is contained in:
2026-04-30 17:29:45 +02:00
parent 90d6a73a60
commit dda53bec16
8 changed files with 282 additions and 3 deletions
+36
View File
@@ -0,0 +1,36 @@
# Local development compose — builds the image from this repo's source tree
# and runs the service alongside a Redis container.
#
# Use this for verifying Dockerfile changes locally before pushing. For
# day-to-day development, run `pnpm dev` directly against a host-exposed
# Redis.
#
# For STAGE and PRODUCTION deployment, use the multi-service compose in
# the sibling `deploy/` repo (https://git.dev.microservices.al/trm/deploy),
# which references this service by its registry image tag instead of
# building locally.
#
# Usage:
# docker compose -f compose.dev.yaml up --build
# docker compose -f compose.dev.yaml down
name: tcp-ingestion-dev
services:
redis:
image: redis:7-alpine
expose:
- '6379'
restart: unless-stopped
ingestion:
build: .
depends_on: [redis]
ports:
- '5027:5027'
environment:
NODE_ENV: production
INSTANCE_ID: dev-1
REDIS_URL: redis://redis:6379
LOG_LEVEL: debug
restart: unless-stopped