docker-workflows

Docker Workflows Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "docker-workflows" with this command: npx skills add autumnsgrove/groveengine/autumnsgrove-groveengine-docker-workflows

Docker Workflows Skill

When to Activate

Activate this skill when:

  • Creating Dockerfiles for applications

  • Setting up docker-compose environments

  • Containerizing Python/UV projects

  • Configuring multi-stage builds

  • Managing container secrets

Quick Commands

Build image

docker build -t my-app:latest .

Run container

docker run -d -p 8000:8000 --name my-app my-app:latest

View logs

docker logs -f my-app

Execute in container

docker exec -it my-app bash

Stop and remove

docker stop my-app && docker rm my-app

Clean up

docker system prune -a

Basic Dockerfile (Python/UV)

FROM python:3.11-slim

WORKDIR /app

Install UV

COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv

Copy dependency files (layer caching)

COPY pyproject.toml uv.lock ./

Install dependencies

RUN uv sync --frozen --no-dev

Copy application

COPY . .

EXPOSE 8000

CMD ["uv", "run", "python", "main.py"]

Multi-Stage Build (Production)

Stage 1: Builder

FROM python:3.11-slim AS builder

WORKDIR /app COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv

COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev

COPY . .

Stage 2: Runtime

FROM python:3.11-slim

WORKDIR /app

Create non-root user

RUN useradd -m -u 1000 appuser && chown appuser:appuser /app

Copy from builder

COPY --from=builder /app/.venv /app/.venv COPY --from=builder /app /app

USER appuser

ENV PATH="/app/.venv/bin:$PATH"

EXPOSE 8000 CMD ["python", "main.py"]

.dockerignore

pycache/ *.pyc .git/ .env .venv/ venv/ *.log .DS_Store .pytest_cache/ tests/ docs/ *.md

Docker Compose (App + Database)

version: '3.8'

services: app: build: . ports: - "8000:8000" environment: - DATABASE_URL=postgresql://user:password@db:5432/myapp depends_on: - db volumes: - ./app:/app # Development: live reload

db: image: postgres:15-alpine environment: - POSTGRES_USER=user - POSTGRES_PASSWORD=password - POSTGRES_DB=myapp volumes: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432"

volumes: postgres_data:

Compose Commands

Start all services

docker-compose up -d

View logs

docker-compose logs -f app

Stop services

docker-compose down

Rebuild and restart

docker-compose up -d --build

Run command in service

docker-compose exec app bash

Remove volumes (deletes data!)

docker-compose down -v

Layer Caching Best Practice

Good: Dependencies cached separately

COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev COPY . .

Bad: Cache invalidated on every code change

COPY . . RUN uv sync --frozen --no-dev

Security Essentials

Use official slim images

FROM python:3.11-slim

Run as non-root

RUN useradd -m -u 1000 appuser USER appuser

Don't include secrets in images

Use runtime environment variables instead

Runtime Secrets

Pass via environment

docker run -e API_KEY=secret my-app

Use env file

docker run --env-file .env.production my-app

With compose

services: app: env_file: - .env.production

Volume Types

Named volume (data persistence)

docker run -v postgres_data:/var/lib/postgresql/data postgres

Bind mount (development)

docker run -v $(pwd)/app:/app my-app

Debugging

Interactive shell

docker exec -it container_name bash

Real-time logs

docker logs -f --tail 100 container_name

Inspect configuration

docker inspect container_name

Resource usage

docker stats container_name

Copy files

docker cp container_name:/app/logs ./logs

Common Issues

Container exits immediately

docker logs container_name # Check for errors docker run -it app:v1 bash # Debug interactively

Can't connect to container

docker ps # Check port mapping docker inspect container_name # Check network config

Out of disk space

docker system df # Check usage docker system prune -a # Clean everything

Related Resources

See AgentUsage/docker_guide.md for complete documentation including:

  • Advanced multi-stage patterns

  • Docker Compose variations

  • Production optimization

  • CI/CD integration

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

git-workflows

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

cicd-automation

No summary provided by upstream source.

Repository SourceNeeds Review
General

cloudflare-deployment

No summary provided by upstream source.

Repository SourceNeeds Review