github-docker-action
3
总安装量
3
周安装量
#59506
全站排名
安装命令
npx skills add https://github.com/kjanat/skills --skill github-docker-action
Agent 安装分布
opencode
3
gemini-cli
3
claude-code
3
github-copilot
3
codex
3
kimi-cli
3
Skill 文档
GitHub Docker Container Action
Build, package, and test custom GitHub Actions using Docker containers.
Not what you need? For running sidecar services (Redis, PostgreSQL, etc.) in CI workflows, see the
github-service-containersskill.
Prerequisites
- Repository on GitHub (public, internal, or private)
- Basic understanding of GitHub Actions and Docker
- Self-hosted runners must run Linux with Docker installed
Security: Always treat workflow inputs as untrusted. Avoid script injection via
${{ }}inrun:blocks.
Workflow: Creating a Docker Action
Step 1: Create project structure
my-action/
âââ Dockerfile
âââ action.yml
âââ entrypoint.sh
âââ README.md
Step 2: Write Dockerfile
Minimal:
FROM alpine:3.21
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
Step 3: Define action metadata
Declare inputs, outputs, and Docker configuration in action.yml.
Step 4: Write entrypoint script
Script receives inputs as positional args. Write outputs to $GITHUB_OUTPUT.
Step 5: Make entrypoint executable
git add entrypoint.sh
git update-index --chmod=+x entrypoint.sh
Verify: git ls-files --stage entrypoint.sh should show 100755.
Step 6: Tag and push
git add action.yml entrypoint.sh Dockerfile README.md
git commit -m "Initial action release"
git tag -a -m "v1 release" v1
git push --follow-tags
Step 7: Test in a workflow
Quick Reference
| Component | Purpose |
|---|---|
Dockerfile |
Container image definition |
action.yml |
Action metadata (inputs, outputs, runner) |
entrypoint.sh |
Code executed when container starts |
README.md |
Usage docs for action consumers |
Key environment variables
| Variable | Description |
|---|---|
$GITHUB_OUTPUT |
File to write output key=value pairs |
$GITHUB_WORKSPACE |
Repo checkout dir (maps to /github/workspace in container) |
$GITHUB_ENV |
File to set env vars for later steps |
Container filesystem mapping
The runner maps GITHUB_WORKSPACE to /github/workspace in the container.
Files written there are available to subsequent workflow steps.
Reading Order
| Task | Files to Read |
|---|---|
| Scaffold new action | SKILL.md (this file) |
| Dockerfile questions | dockerfile-patterns.md |
| Configure inputs/outputs | action-metadata.md |
| Write entrypoint logic | entrypoint-scripts.md |
| Test in workflow | workflow-testing.md |
| Debug container issues | dockerfile-patterns.md + entrypoint-scripts.md |
In This Reference
| File | Purpose |
|---|---|
| dockerfile-patterns.md | Dockerfile templates and gotchas |
| action-metadata.md | action.yml spec and examples |
| entrypoint-scripts.md | Entrypoint, outputs, permissions |
| workflow-testing.md | Workflow YAML for public/private |