- Follow the Established Pattern: Always respect the established architecture patterns across services (Dockerfile, entrypoint script, management script).
- Separate Concerns: Keep build-time operations in Dockerfile, initialization in entrypoint scripts, and user operations in management scripts.
- Delegate Appropriately: Entrypoint scripts should handle environment initialization; management scripts should provide a clean interface.
- Minimize Verbosity: Management scripts should be concise in output; verbose operations belong in entrypoint scripts.
- Use Defaults Wisely: Always provide sensible defaults for environment variables.
- Check Dependencies: Explicitly check for required dependencies (database, Redis, other services).
- Respect Technology Specifics: Recognize and accommodate technology-specific patterns (rake vs rails, Nod