feat(pgpm): add --include flag for additional Docker services (minio)#975
Merged
pyramation merged 2 commits intomainfrom Apr 11, 2026
Merged
feat(pgpm): add --include flag for additional Docker services (minio)#975pyramation merged 2 commits intomainfrom
pyramation merged 2 commits intomainfrom
Conversation
- Add ServiceDefinition registry for additional services - Add --include <svc> flag to start/stop additional services alongside Postgres - Add 'ls' subcommand to list available services and their status - Add minio as first additional service (port 9000) - Postgres remains the primary service, started by default - All existing commands remain backward compatible
Contributor
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
- Add VolumeMapping interface and volumes field to ServiceDefinition - Minio now uses a named 'minio-data' volume for persistent /data storage - Data persists across stop/start and --recreate cycles
This was referenced Apr 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Extends
pgpm dockerto support additional Docker services alongside PostgreSQL via a new--include <service>flag. PostgreSQL remains the primary service started by default; additional services are opt-in only.New capabilities:
pgpm docker start --include minio— starts MinIO alongside Postgrespgpm docker stop --include minio— stops bothpgpm docker ls— lists available services with live status (running/stopped/not created)Architecture: A
ServiceDefinitioninterface andADDITIONAL_SERVICESregistry make it straightforward to add more services in the future — just add an entry to the registry. Each service definition supports image, ports, env vars, commands, and named volumes.MinIO is the first additional service (
minio/minio, port 9000, default credsminioadmin/minioadmin), with a named Docker volume (minio-data) for persistent/datastorage across container restarts and--recreatecycles.All existing commands (
pgpm docker start,pgpm docker stop) behave identically when--includeis not specified.Review & Testing Checklist for Human
MINIO_ACCESS_KEY/MINIO_SECRET_KEY(legacy names), but the CI workflow usesMINIO_ROOT_USER/MINIO_ROOT_PASSWORD. Depending on theminio/minioimage tag, the older names may be deprecated — verify these still work withminio/minio:latest--includeflag parsing withinquirerer:parseIncludehandles bothstringandstring[], but confirm that repeated flags (--include minio --include redis) actually produce an array from the arg parser rather than only keeping the last valuepgpm docker start --include miniolocally, confirm both containers come up, thenpgpm docker lsto check status output, andpgpm docker stop --include minioto tear downpgpm docker start --include minio, upload a file to MinIO, thenpgpm docker stop --include minio && pgpm docker start --include minioand verify the file is still thereNotes
pgpm envis intentionally not changed — no MinIO/CDN env vars are exported. Users who include MinIO will need to setCDN_ENDPOINT,AWS_ACCESS_KEY, etc. separately.startServiceduplicates the recreate/exists/running logic fromstartContainer. A future refactor could unify them, but keeping them separate avoids touching the existing Postgres-specific code path.listServiceshardcodes the postgres container name as"postgres"— it won't detect a Postgres container started with a custom--name.Link to Devin session: https://app.devin.ai/sessions/44eca4b3fe5a46aaaf5c4907f0a0b600
Requested by: @pyramation