ADORSYS-GIS / ADORSYS-GIS/cloud-identity-wallet
Docker and Docker Compose configuration
- 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.