Docker Image
Pongo includes a multi-stage Dockerfile optimized for production deployments.Dockerfile Overview
Dockerfile
Build Features
- Multi-stage build: Optimized image size
- Layer caching: Separate layer for
pongo/config changes - Build cache: Faster rebuilds with mounted caches
- Production deps: Only production dependencies in final image
- Entrypoint script: Auto-starts scheduler and archiver
Docker Compose
Basic Setup
Create adocker-compose.yml file:
docker-compose.yml
With PostgreSQL
docker-compose.yml
Separate Scheduler Service
For more control, run the scheduler as a separate service:docker-compose.yml
Running with Docker Compose
Building Manually
Build the image
Run the container
Run scheduler separately
Volume Management
SQLite Data Persistence
When using SQLite, mount a volume to persist data:/data/pongo.db.
Backup SQLite Database
List Volumes
Inspect Volume
Remove Volume
Environment Variables
| Variable | Description | Default |
|---|---|---|
DATABASE_URL | Database connection string | file:/data/pongo.db |
SCHEDULER_ENABLED | Auto-start scheduler | false |
ARCHIVAL_ENABLED | Auto-start archiver | false |
ACCESS_CODE | Dashboard password | - (no auth) |
PONGO_REGION | Region identifier | default |
SCHEDULER_PORT | Scheduler API port | 3001 |
Updating
Troubleshooting
Container won’t start
Database connection errors
- Verify
DATABASE_URLformat - Check database container is running:
docker compose ps - Verify network connectivity:
docker compose exec pongo ping db
Scheduler not running
- Verify
SCHEDULER_ENABLED=truein environment - Check logs:
docker compose logs pongo | grep scheduler - If using separate service, check:
docker compose logs scheduler
Out of disk space
Production Recommendations
- Use PostgreSQL instead of SQLite for better concurrency
- Set resource limits in
docker-compose.yml: - Use health checks to ensure service availability
- Set up log rotation to prevent disk space issues
- Use secrets management for sensitive environment variables
- Enable automatic restarts:
restart: unless-stopped