- Add maintainer and description labels to all build and runtime stages
- Change builder WORKDIR from /app to /build for clarity
- Install build dependencies with --no-cache/--no-install-recommends flags
- Add build optimizations: -ldflags="-w -s -extldflags '-static'" and -trimpath for Go, strip for Rust
- Implement dependency caching strategy for Rust builds (dummy app pattern)
- Pin Alpine base
- Create multi-stage Dockerfile for CLI application
- Use golang:1.26-alpine as builder image
- Copy go.mod and go.sum for dependency caching
- Build static binary with CGO_ENABLED=0
- Use alpine:latest as runtime image with ca-certificates
- Set /root/ as working directory and ./cli as default command
- Update charging-engine.Dockerfile from rust:1.94-slim to rust:1.95-slim
- Add packet-gateway.Dockerfile with rust:1.95-slim builder stage
- Add pkg-config, libssl-dev, clang, llvm, libelf-dev, and libbpf-dev build dependencies for eBPF support
- Add debian:bookworm-slim runtime stage with libssl3 and ca-certificates
- Copy circuit_breaker.rs from charging-engine for shared functionality
- Set RUST_LOG=info environment variable
Docker:
- Add production-ready Dockerfiles for all microservices
- Optimize for multi-stage builds and minimal image sizes
Kubernetes:
- Add namespace and service manifests
- Include MongoDB and Redis deployment configurations
- Configure API server and charging engine deployments
Documentation:
- Add comprehensive README with platform overview
- Include technology stack and quick start instructions
- Provide prerequisites and setup guidance