act-docker-setup
Use when configuring Docker environments for act, selecting runner images, managing container resources, or troubleshooting Docker-related issues with local GitHub Actions testing.
What this skill does
# Act - Docker Configuration and Setup
Use this skill when configuring Docker for act, choosing runner images, managing container resources, and optimizing Docker performance for local GitHub Actions workflow testing.
## Runner Images
### Image Size Categories
Act supports three image size categories:
| Size | Image | Tools | Use Case |
|------|-------|-------|----------|
| Micro | `node:16-buster-slim` | Minimal | Simple Node.js workflows |
| Medium | `catthehacker/ubuntu:act-*` | Common tools | Most workflows |
| Large | `catthehacker/ubuntu:full-*` | Everything | Maximum compatibility |
### Official catthehacker Images
```bash
# Latest Ubuntu (22.04)
act -P ubuntu-latest=catthehacker/ubuntu:act-latest
# Specific Ubuntu versions
act -P ubuntu-22.04=catthehacker/ubuntu:act-22.04
act -P ubuntu-20.04=catthehacker/ubuntu:act-20.04
# Full images (larger, more tools)
act -P ubuntu-latest=catthehacker/ubuntu:full-latest
act -P ubuntu-22.04=catthehacker/ubuntu:full-22.04
# Runner images (closest to GitHub)
act -P ubuntu-latest=catthehacker/ubuntu:runner-latest
```
### Language-Specific Images
```bash
# Node.js
act -P ubuntu-latest=node:20
act -P ubuntu-latest=node:20-alpine
# Python
act -P ubuntu-latest=python:3.12
act -P ubuntu-latest=python:3.12-slim
# Go
act -P ubuntu-latest=golang:1.22
act -P ubuntu-latest=golang:1.22-alpine
# Ruby
act -P ubuntu-latest=ruby:3.3
act -P ubuntu-latest=ruby:3.3-alpine
```
## Platform Configuration
### .actrc Configuration
Create `.actrc` in project root for persistent settings:
```
# Default platform images
-P ubuntu-latest=catthehacker/ubuntu:act-latest
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04
-P ubuntu-20.04=catthehacker/ubuntu:act-20.04
# Reuse containers
--reuse
# Container options
--container-architecture linux/amd64
--container-daemon-socket -
# Resource limits
--container-cap-add SYS_PTRACE
--container-cap-add NET_ADMIN
```
### Per-Workflow Configuration
Create `.github/workflows/.actrc` for workflow-specific settings:
```
-P ubuntu-latest=node:20
--env-file .env.ci
```
### Command Line Override
```bash
# Override .actrc settings
act -P ubuntu-latest=python:3.12 --no-reuse
```
## Container Management
### Reusing Containers
```bash
# Reuse containers for faster iteration
act --reuse
# Reuse with specific job
act --reuse -j build
# Force recreate containers
act --rm
```
### Container Lifecycle
```bash
# List running act containers
docker ps --filter "label=act"
# Stop all act containers
docker stop $(docker ps -q --filter "label=act")
# Remove all act containers
docker rm $(docker ps -aq --filter "label=act")
# Clean up act volumes
docker volume prune
```
### Inspect Containers
```bash
# Exec into running container
docker exec -it act-<job-name> /bin/bash
# View container logs
docker logs act-<job-name>
# Inspect container config
docker inspect act-<job-name>
```
## Volume Mounts and Binds
### Default Mounts
Act automatically mounts:
- Current directory → `/github/workspace`
- Act cache → `/root/.cache/act`
- Docker socket (if needed)
### Custom Bind Mounts
```bash
# Mount additional directory
act --bind /host/path:/container/path
# Mount multiple directories
act --bind /data:/data --bind /config:/config
# Read-only mount
act --bind /readonly:/readonly:ro
```
### Persistent Cache
```bash
# Configure cache location
export ACT_CACHE_DIR=$HOME/.cache/act
# Clean cache
rm -rf $HOME/.cache/act
```
## Docker Configuration
### Docker Socket
```bash
# Use default Docker socket
act --container-daemon-socket -
# Use custom socket
act --container-daemon-socket /var/run/docker.sock
# Use Docker Desktop socket (Mac)
act --container-daemon-socket unix:///Users/$USER/.docker/run/docker.sock
```
### Container Architecture
```bash
# Specify architecture
act --container-architecture linux/amd64
# For Apple Silicon Macs
act --container-architecture linux/arm64
```
### Network Configuration
```bash
# Use host network
act --network host
# Use custom network
act --network my-network
# Create isolated network
docker network create act-network
act --network act-network
```
## Resource Management
### Memory Limits
```bash
# Set memory limit
act --memory 4g
# Set memory and swap
act --memory 4g --memory-swap 8g
```
### CPU Limits
```bash
# Limit CPU cores
act --cpus 2
# Set CPU shares
act --cpu-shares 512
```
### Disk Space
```bash
# Check Docker disk usage
docker system df
# Clean up unused resources
docker system prune -a
# Remove old act cache
find ~/.cache/act -type d -mtime +30 -exec rm -rf {} +
```
## Security
### Capabilities
```bash
# Add Linux capabilities
act --container-cap-add SYS_PTRACE
# Drop capabilities
act --container-cap-drop ALL
# Security profile
act --security-opt seccomp=unconfined
```
### Privileged Mode
```bash
# Run in privileged mode (use sparingly)
act --privileged
# Safer: add specific capabilities instead
act --container-cap-add SYS_ADMIN
```
## Multi-Platform Builds
### Docker Buildx
```yaml
# Workflow using buildx
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: docker/setup-buildx-action@v3
- uses: docker/build-push-action@v5
with:
platforms: linux/amd64,linux/arm64
```
Test with act:
```bash
# Enable buildx in act
act --use-gitignore=false \
-P ubuntu-latest=catthehacker/ubuntu:act-latest
```
## Troubleshooting
### Image Pull Failures
```bash
# Pull image manually
docker pull catthehacker/ubuntu:act-latest
# Use cached image
act --pull=false
# Force pull latest
act --pull=true
```
### Permission Issues
```bash
# Fix workspace permissions
act --container-options "--user $(id -u):$(id -g)"
# Run as root (not recommended)
act --container-options "--user root"
```
### DNS Issues
```bash
# Use custom DNS
act --container-options "--dns 8.8.8.8"
# Use host DNS
act --container-options "--dns-search ."
```
### Container Exit Codes
```bash
# Continue on error
act --continue-on-error
# Capture exit code
act; echo $?
```
## Performance Optimization
### Image Selection
Choose the smallest image that meets your needs:
```bash
# Fast but limited
act -P ubuntu-latest=node:20-alpine
# Balanced
act -P ubuntu-latest=catthehacker/ubuntu:act-latest
# Comprehensive but slow
act -P ubuntu-latest=catthehacker/ubuntu:full-latest
```
### Layer Caching
```yaml
# Optimize Dockerfile for caching
FROM node:20
# Install system deps first (changes rarely)
RUN apt-get update && apt-get install -y git
# Copy package files (changes sometimes)
COPY package*.json ./
# Install deps (changes sometimes)
RUN npm ci
# Copy source (changes often)
COPY . .
```
### Parallel Jobs
```bash
# Run jobs in parallel
act --parallel
# Limit parallelism
act --parallel --jobs 2
```
## Custom Images
### Building Custom Image
Create `Dockerfile`:
```dockerfile
FROM catthehacker/ubuntu:act-latest
# Add custom tools
RUN apt-get update && apt-get install -y \
postgresql-client \
redis-tools \
&& rm -rf /var/lib/apt/lists/*
# Install specific Node version
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs
# Install global npm packages
RUN npm install -g pnpm yarn
```
Build and use:
```bash
docker build -t my-act-runner .
act -P ubuntu-latest=my-act-runner
```
### Publishing Custom Image
```bash
# Tag image
docker tag my-act-runner username/act-runner:latest
# Push to Docker Hub
docker push username/act-runner:latest
# Use in team
act -P ubuntu-latest=username/act-runner:latest
```
## Best Practices
### DO
✅ Use `.actrc` for consistent configuration across team
✅ Choose appropriate image size for your needs
✅ Use `--reuse` during development
✅ Clean up Docker resources regularly
✅ Pin image versions in production workflows
✅ Use layer caching for faster builds
✅ Document image requirements in README
### DON'T
❌ Use `:latest` tags in production
❌ Run containers in privileged mode unnecessarily
❌ Ignore Docker disk space usage
❌ UseRelated in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.