docs(devops): update all documentation for DockerSpec compliance
- Replace all docker-compose.yml/docker-compose.monitoring.yml references with compose.yaml/compose.monitoring.yaml (modern Compose Spec naming) - Replace all `docker-compose` CLI commands with `docker compose` (plugin syntax) - Update Dockerfile stage descriptions: node:18-alpine → node:20.11-bookworm-slim, built-in node user → explicit nodeapp:1001 non-root user - Update image version references: postgres:14-alpine → postgres:14.12-alpine3.19, redis:7-alpine → redis:7.2-alpine3.19 - Externalize postgres credentials: hardcoded values → POSTGRES_USER/PASSWORD/DB env vars - Externalize Grafana admin password: hardcoded 'agentidp' → GF_ADMIN_PASSWORD env var - Add Docker Compose Variables section to environment-variables.md (POSTGRES_*, GF_ADMIN_PASSWORD) - Update local-development.md Step 3: cp .env.example .env, document POSTGRES_* purpose - Update quick-start.md: cp .env.example .env, use awk/sed for JWT key injection - Update 07-dev-setup.md: remove 'no .env.example' claim, reference cp .env.example - Update docker-compose.yml key file description in 04-codebase-structure.md - Update monitoring overlay launch commands across all docs (compose.yaml + compose.monitoring.yaml) - Update volume names to kebab-case: postgres_data → postgres-data, redis_data → redis-data - Fix compliance encryption-runbook: docker-compose restart agentidp → docker compose restart app All docs now consistent with compose.yaml in repo root. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -56,8 +56,8 @@ sentryagent-idp/
|
||||
│ ├── agntcy-conformance/ # AGNTCY conformance test suite (separate Jest config)
|
||||
│ └── load/ # k6 load test scripts
|
||||
├── Dockerfile # Multi-stage production build (build + runtime stages)
|
||||
├── docker-compose.yml # Local development: PostgreSQL 14 (port 5432) + Redis 7 (port 6379)
|
||||
├── docker-compose.monitoring.yml # Monitoring overlay: Prometheus (port 9090) + Grafana (port 3001)
|
||||
├── compose.yaml # Local development: PostgreSQL 14.12 (port 5432) + Redis 7.2 (port 6379)
|
||||
├── compose.monitoring.yaml # Monitoring overlay: Prometheus (port 9090) + Grafana (port 3001)
|
||||
├── package.json # Node.js dependencies and npm scripts
|
||||
├── tsconfig.json # TypeScript strict configuration — compiled to dist/
|
||||
└── jest.config.ts # Jest configuration — ts-jest, test timeouts, coverage thresholds
|
||||
@@ -134,11 +134,14 @@ The `errorHandler` middleware in `src/middleware/errorHandler.ts` maps
|
||||
`SentryAgentError` subclasses to their `httpStatus` codes and serialises the response
|
||||
as `IErrorResponse { code, message, details }`.
|
||||
|
||||
**`docker-compose.yml`**
|
||||
Starts PostgreSQL 14 (Alpine) on port 5432 with database `sentryagent_idp` and
|
||||
Redis 7 (Alpine) on port 6379. Used for local development only. Both services have
|
||||
health checks so `depends_on` conditions work correctly. The `app` service mounts
|
||||
`./src` as a read-only volume for live code reloading.
|
||||
**`compose.yaml`**
|
||||
Starts PostgreSQL 14.12 (Alpine) on port 5432 and Redis 7.2 (Alpine) on port 6379.
|
||||
All services use a dedicated `app-tier` bridge network, `restart: unless-stopped`,
|
||||
and `deploy.resources.limits` per DockerSpec standards. Both infrastructure services
|
||||
have health checks so `depends_on` conditions work correctly. The `app` service mounts
|
||||
`./src` as a read-only bind volume for live code reloading and has its own
|
||||
`healthcheck` probe via `curl /health`. Postgres credentials and Grafana admin
|
||||
password are externalized to environment variables — see `docs/devops/environment-variables.md`.
|
||||
|
||||
**`tsconfig.json`**
|
||||
TypeScript compiler configuration. `strict: true` enables the full suite of strictness
|
||||
|
||||
Reference in New Issue
Block a user