- Clear default passwords in all service configs and local dev YAMLs
- Add entrypoint.sh with envsubst to resolve ${ENV} vars in go-zero YAML
- Update Dockerfiles to install gettext and use entrypoint
- Update docker-compose to pass secrets via environment and require via ${VAR:?...}
- Add .gitignore rules for .env files, add .env.example template
Co-Authored-By: Claude <noreply@anthropic.com>
Alpine CDN unreachable from DinD containers. Switch to
mirrors.aliyun.com for both builder and runtime stages.
Co-Authored-By: Claude <noreply@anthropic.com>
Docker Hub and proxy.golang.org unreachable from k3s cluster (GFW).
Switch Dockerfiles to Harbor base images and goproxy.cn.
Co-Authored-By: Claude <noreply@anthropic.com>
WHY: existing Dockerfiles copied pre-compiled arm64 binaries which cannot
run on the amd64 K3s cluster (exec format error). Also fixed port conflicts
when running muyu alongside iloom in docker-compose.
HOW:
- rewrite 3 Dockerfiles (system/inventory/gateway) to multi-stage builds
using golang:1.24-alpine with CGO_ENABLED=0 GOARCH=amd64
- parameterize host ports in docker-compose to avoid conflicts (3306->13306,
6379->16379, 8080->18080)
- fix inv_product unique key from product_name-only to composite
(product_name, spec, color) to allow same-name products with different specs
- add X-Token to Authorization header middleware in gateway for
iloom frontend compatibility
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>