ADORSYS-GIS / ADORSYS-GIS/cloud-identity-wallet

Docker and Docker Compose configuration

Aperta
#373 0 commenti 0 reazioni 1 assegnatario Rivendicata da @Hermann-Core Vedi su GitHub
enhancement
Lingua principale
Rust
Stelle
4
Fork
0
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

**Priority:** P1 — High

### Description

Provide production-grade Docker and Docker Compose configurations for the cloud-identity-wallet server, enabling one-command local development and reproducible deployment.

### Scope

1. **Multi-stage `Dockerfile`**:
- Build stage: `rust:1.92` (or later) with `cargo-chef` for layer caching
- Runtime stage: `debian:bookworm-slim` or `from scratch` for minimal image
- Expose configurable port (default 3000)
- Health check endpoint
- Non-root user for security
- Support both `memory-backend` (dev) and `sql-backend` (prod) feature sets via build-time `ARG`

2. **`compose.yml`** for local development:
- `wallet` service building from local Dockerfile
- `redis` service (Redis 8+ with RESP3)
- `mysql` service or `postgres` service (configurable via `.env`)
- `localstack` service for AWS KMS emulation (when `aws-kms` feature is used locally)
- Volumes for data persistence
- Network isolation

4. **`.dockerignore`** — exclude target/, .git, .env, etc.

5. **Documentation** — update README with Docker quickstart:
```bash
cp .env.example .env # edit as needed
docker compose up # starts wallet + redis + mysql
```

### Acceptance Criteria

- [ ] `docker build .` succeeds and produces a working image
- [ ] `docker compose up` starts wallet with memory backends (no DB required) and responds to health check
- [ ] `docker compose --profile sql up` starts wallet + redis + mysql and the wallet connects successfully
- [ ] Docker image runs as non-root user
- [ ] Build cache works (second build after code change only rebuilds affected layers)
- [ ] README updated with Docker instructions

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.