- Commented out all Supabase services to facilitate testing with Supabase CLI. - Updated README to include Supabase directory in project structure. - Adjusted documentation for migration paths in Supabase Docker Compose guide. - Enhanced docker-compose-reset.sh to explicitly remove Supabase volumes and wait for migrations to complete.
3.0 KiB
3.0 KiB
Docker Compose Service Organization
Service Namespaces
Services in the docker-compose.yml are organized using labels to create logical namespaces. This allows for better organization and easier management of related services.
Supabase Namespace
All Supabase services are grouped under the com.usda-vision.service=supabase label namespace:
Services in Supabase Namespace
- supabase-db - PostgreSQL database (group:
database) - supabase-rest - PostgREST API (group:
api) - supabase-auth - GoTrue authentication (group:
auth) - supabase-realtime - Realtime subscriptions (group:
realtime) - supabase-storage - Storage API (group:
storage) - supabase-studio - Supabase Studio UI (group:
studio) - supabase-meta - Database metadata service (group:
meta) - supabase-migrate - Migration runner (group:
migration) - supabase-inbucket - Email testing server (group:
email)
Managing Supabase Services
List all Supabase services:
docker compose ps --filter "label=com.usda-vision.service=supabase"
View logs for all Supabase services:
docker compose logs supabase-*
Stop all Supabase services:
docker compose stop supabase-*
Start all Supabase services:
docker compose start supabase-*
Restart all Supabase services:
docker compose restart supabase-*
View logs for a specific Supabase service group:
# Database services
docker compose logs supabase-db supabase-migrate
# API services
docker compose logs supabase-rest supabase-auth
# UI services
docker compose logs supabase-studio supabase-meta
Label Structure
Each Supabase service has two labels:
com.usda-vision.service=supabase- Identifies it as part of the Supabase namespacecom.usda-vision.service.group=<group>- Identifies the service's functional group
Benefits
- Better Organization: All Supabase services are visually grouped in the compose file
- Easy Filtering: Use labels to filter and manage related services
- Clear Ownership: Makes it obvious which services belong together
- No Behavior Change: Services still start by default with
docker compose up - Flexible Management: Can manage Supabase services separately when needed
Future Namespaces
You can extend this pattern to other service groups:
services:
api:
labels:
- "com.usda-vision.service=application"
- "com.usda-vision.service.group=api"
web:
labels:
- "com.usda-vision.service=application"
- "com.usda-vision.service.group=frontend"
Visual Organization in docker-compose.yml
The Supabase services are also visually organized with a comment section:
# ============================================================================
# Supabase Services (Database & Backend)
# ============================================================================
This makes it easy to find and understand the Supabase services section when viewing the file.