npx agentspec-cli install 368b78e6-c346-49f5-9d0e-3b4b34de9985 --framework ClaudeCode→ .claude/skills/docker/SKILL.md
# Docker Operations Skill
## Quick Reference
| Action | Command |
|--------|---------|
| Start all | `cd scarlet && docker compose up -d` |
| Stop all | `cd scarlet && docker compose down` |
| Restart Letta | `docker compose restart abiogenesis-letta` |
| View logs | `docker compose logs -f abiogenesis-letta` |
| Check status | `docker ps \| grep abiogenesis` |
## Container Architecture
```
abiogenesis-letta <- Main application (Letta framework)
├── Depends on: postgres (healthy), redis (healthy)
├── Ports: 8283
└── Volumes:
- scarlet_postgres_data (via postgres)
- scarlet_redis_data (via redis)
- ./data:/app/data
- ./prompts:/app/prompts
- ./.env:/app/.env
abiogenesis-postgres <- PostgreSQL database
└── Volume: scarlet_postgres_data
abiogenesis-redis <- Redis cache
└── Volume: scarlet_redis_data
```
## Environment Variables Required
| Variable | Source | Purpose |
|----------|--------|---------|
| MINIMAX_API_KEY | `.env` | LLM provider |
| LETTA_PG_HOST | `docker-compose.yml` | Database connection |
| LETTA_REDIS_HOST | `docker-compose.yml` | Cache connection |
| POSTGRES_PASSWORD | `.env` | Database auth |
## Common Issues
### Letta not responding
```bash
# Check if running
docker ps | grep letta
# Check logs
docker logs abiogenesis-letta --tail 30
# Restart
docker compose restart abiogenesis-letta
```
### Database connection failed
```bash
# Verify postgres is healthy
docker ps | grep postgres
# Check postgres logs
docker logs abiogenesis-postgres
# Restart all services
docker compose down && docker compose up -d
```
### Volume issues
```bash
# List volumes
docker volume ls | grep scarlet
# Check volume usage
docker system df -v
# Remove orphaned volumes (CAREFUL - loses data)
docker volume prune -f
```
## Data Persistence
| Data Type | Location | Persists on restart? |
|-----------|----------|---------------------|
| PostgreSQL data | `scarlet_postgres_data` volume | YES |
| Redis data | `scarlet_redis_data` volume | YES |
| App data | `./data` bind mount | YES |
| Logs | Docker logs | NO |
## Adding New Services
When adding services to `docker-compose.yml`:
1. Add service under `services:`
2. Add volume under `volumes:` if named volume needed
3. Update network if needed (uses `abiogenesis-net`)
4. Add healthcheck for dependency services
5. Document in `docs/architecture/adr-*.md`
6. Update this skill if service-specific commands added
## Security Notes
- `.env` contains sensitive API keys - never commit to git
- `POSTGRES_PASSWORD` should be changed in production
- Consider `SECURE=true` for production deployments
## Verification Checklist
After any Docker change:
- [ ] All containers running: `docker ps | grep abiogenesis`
- [ ] Letta responding: `curl http://localhost:8283/v1/models`
- [ ] No errors in logs: `docker compose logs --tail 20`
- [ ] Data volumes exist: `docker volume ls | grep scarlet`
Built on the Agent Skills standard
docker-best-practices
Docker best practices including multi-stage builds, compose patterns, image optimization, and security
by AgentHub Crawler
GEMINI.md
This project provides a multi-architecture Docker image for network troubleshooting. It's based on Alpine Linux and includes a wide range of command-line tools for network diagnostics, as well as an Nginx web server. The project also provides a Fedora-based variant. The Docker image is designed to be used in various environments, including standalone Docker, Kubernetes, and OpenShift.
by AgentHub Crawler
Docker Best Practices for Modern Web Applications
1. FROM - Base image definition 2. ARG - Build-time variables (can also appear before FROM) 3. LABEL - Image metadata 4. ENV - Environment variables 5. WORKDIR - Set working directory 6. RUN - Execute commands
by AgentHub Crawler
Sign in to leave a comment.
multi-stage-dockerfile
Create optimized multi-stage Dockerfiles for any language or framework
by AgentHub Crawler