[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M77XY8D2WPKA2P27N3ARFVVC":3,"skill-same:01M77XY8D2WPKA2P27N3ARFVVC":66},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":13,"repositoryHtmlUrl":31,"repositoryHomepageUrl":6,"ownerHtmlUrl":32,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":33,"install":34,"resources":47},"01M77XY8D2WPKA2P27N3ARFVVC","render-docker",null,"Builds and deploys Docker containers on Render—Dockerfiles, multi-stage builds, Blueprint Docker fields, private registries, layer caching, and platform constraints. Use when the user mentions Docker, Dockerfile, container images, multi-stage builds, container registry, GHCR, ECR, BuildKit, dockerContext, runtime docker or image, or optimizing Docker builds on Render.","ConcertoNotes\u002Fcodex-plugins","ConcertoNotes","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F249301288?v=4","01M77NJ0BK2KN5YW0D8RHD99TB","01M77NJ0CCEDPATAY3JTXEWNK5",0,"MIT","https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Frender\u002Fskills\u002Frender-docker\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: render-docker\ndescription: >-\n  Builds and deploys Docker containers on Render—Dockerfiles, multi-stage\n  builds, Blueprint Docker fields, private registries, layer caching, and\n  platform constraints. Use when the user mentions Docker,\n  Dockerfile, container images, multi-stage builds, container registry,\n  GHCR, ECR, BuildKit, dockerContext, runtime docker or image, or\n  optimizing Docker builds on Render.\nlicense: MIT\ncompatibility: >-\n  Any Render compute service (web, private, worker, cron) with runtime: docker\n  or runtime: image.\nmetadata:\n  author: Render\n  version: \"1.0.0\"\n  category: deployment\n---\n\n# Render Docker Deployments\n\nRender uses **BuildKit** for Docker builds. All compute service types that support custom runtimes can use **`runtime: docker`** (build from a Dockerfile in the repo) or **`runtime: image`** (pull a prebuilt image; no Dockerfile build on Render). Deeper patterns and copy-paste templates live under `references\u002F`.\n\n## When to Use\n\n- Authoring or debugging a **Dockerfile** for a Render service\n- Choosing **`runtime: docker`** vs **`runtime: image`** in a Blueprint\n- Wiring **private base images** or **prebuilt images** with registry credentials\n- **Multi-stage builds**, **build args**, **secrets**, and **layer caching**\n- **Performance** and **security** hardening of container images on Render\n\nFor full Blueprint authoring, see **render-blueprints**. For end-to-end deploy flows, see **render-deploy**.\n\n## Render Docker Builds\n\n- **BuildKit** is used for Docker builds on Render.\n- **`runtime: docker`**: Render builds an image from your repo using `dockerfilePath`, `dockerContext`, and optional `dockerCommand` (overrides image `CMD`).\n- **`runtime: image`**: Render pulls **`image.url`**; no repo-based image build. Pair with **`registryCredential`** when the registry is private.\n\n## Blueprint Configuration\n\n| Field | Role |\n|-------|------|\n| `dockerfilePath` | Path to the Dockerfile (default `.\u002FDockerfile`) |\n| `dockerContext` | Build context directory (what is sent to the daemon) |\n| `dockerCommand` | Overrides the container `CMD` after the image is built |\n| `image.url` | Image reference for `runtime: image` (registry\u002Frepo:tag or digest) |\n| `registryCredential` | Auth for private pulls; often `fromRegistryCreds` → Dashboard-stored credential |\n\nExample sketch (values illustrative):\n\n```yaml\nservices:\n  - type: web\n    name: api\n    runtime: docker\n    region: oregon\n    plan: starter\n    dockerfilePath: .\u002FDockerfile\n    dockerContext: .\n    dockerCommand: node server.js\n    envVars:\n      - key: PORT\n        value: 10000\n```\n\nFor `runtime: image`, set `image.url` and, if needed, `registryCredential` per **Registry Configuration** below.\n\n## Multi-Stage Builds\n\n**Recommended for production.** Use a **builder** stage for compilation and dependency installation, and a minimal **runner** stage that only copies artifacts and runtime files. Benefits:\n\n- Smaller images and faster pulls\n- Fewer tools and secrets in the final image (smaller attack surface)\n- Clear separation between build-time and run-time dependencies\n\nSee `references\u002Fdockerfile-patterns.md` for language-specific templates.\n\n## Build Args vs Secrets\n\n**Critical:** **Never pass secrets via `ARG`.** Build arguments are stored in image **layers** and can be recovered from the image history or intermediate layers.\n\n- Prefer **runtime environment variables** (Render **env vars** \u002F secret files) for application secrets.\n- For **build-time** secrets (e.g. private package feeds), use **Docker BuildKit secret mounts** (`RUN --mount=type=secret,...`) rather than `ARG`.\n\nTreat anything sensitive as **runtime** or **BuildKit secret mount**, not as a build arg.\n\n## Registry Configuration\n\nPrivate **base images** (for `runtime: docker`) or **prebuilt images** (`runtime: image`) need authentication:\n\n- Store credentials in the Render Dashboard under **Registry Credentials**.\n- In Blueprint, reference them with **`registryCredential.fromRegistryCreds.name`** (match the Dashboard name).\n\nSupports common registries (Docker Hub, GHCR, ECR, Google Artifact Registry, and others). Step-by-step per provider: `references\u002Fregistry-setup.md`.\n\n**Prebuilt image services** do **not** auto-deploy when the tag moves in the registry; trigger a **manual redeploy** or use a **deploy hook** when you publish a new image.\n\n## Layer Caching\n\n- Render **caches Docker layers** between builds; **order Dockerfile instructions** so that frequently unchanged layers stay early (see `references\u002Foptimization-guide.md`).\n- **Tags and caching:** mutable tags like **`latest`** can resolve to **stale cached** images. Prefer **immutable** references: **digest** (`repo\u002Fimage@sha256:...`) or **version pins** (`v1.2.3`).\n\n## Platform Specifics\n\n- Render builds **linux\u002Famd64**. Avoid assumptions about other architectures in production images.\n- **Port binding** matches native services: bind HTTP to **`0.0.0.0:$PORT`** (Render sets `PORT`).\n- **Health checks** behave like non-Docker web services (`healthCheckPath`, etc.).\n- **Secret files** from Render appear under **`\u002Fetc\u002Fsecrets\u002F`** — do not rely on repo-root secret paths inside the container unless you copy or mount them explicitly in the image.\n\n## `.dockerignore` and Start Commands\n\n- Always maintain a **`.dockerignore`** that excludes **`node_modules`**, **`.git`**, **`.env`**, build artifacts, logs, and OS junk. This shrinks context upload time and avoids leaking local files into layers. Lists and rationale: `references\u002Foptimization-guide.md`.\n- **Custom start command:** if you need multiple shell steps, use a single shell form, e.g. **`\u002Fbin\u002Fsh -c 'set -e; .\u002Fmigrate && exec node server.js'`** (prefer **`exec`** so your app receives signals for graceful shutdown).\n\n## References\n\n| Document | Contents |\n|----------|----------|\n| `references\u002Fdockerfile-patterns.md` | Multi-stage templates (Node, Python, Go, Ruby, Rust, static sites) |\n| `references\u002Fregistry-setup.md` | Docker Hub, GHCR, ECR, Artifact Registry + Blueprint wiring |\n| `references\u002Foptimization-guide.md` | Layer order, `.dockerignore`, BuildKit cache mounts, debugging |\n\n## Related Skills\n\n- **render-deploy** — Deploy flows, Blueprint vs Dashboard, operational steps\n- **render-blueprints** — Full `render.yaml` schema, wiring, and validation\n- **render-web-services** — Web service behavior, health checks, and HTTP edge cases\n","# Render Docker Deployments\n\nRender uses **BuildKit** for Docker builds. All compute service types that support custom runtimes can use **`runtime: docker`** (build from a Dockerfile in the repo) or **`runtime: image`** (pull a prebuilt image; no Dockerfile build on Render). Deeper patterns and copy-paste templates live under `references\u002F`.\n\n## When to Use\n\n- Authoring or debugging a **Dockerfile** for a Render service\n- Choosing **`runtime: docker`** vs **`runtime: image`** in a Blueprint\n- Wiring **private base images** or **prebuilt images** with registry credentials\n- **Multi-stage builds**, **build args**, **secrets**, and **layer caching**\n- **Performance** and **security** hardening of container images on Render\n\nFor full Blueprint authoring, see **render-blueprints**. For end-to-end deploy flows, see **render-deploy**.\n\n## Render Docker Builds\n\n- **BuildKit** is used for Docker builds on Render.\n- **`runtime: docker`**: Render builds an image from your repo using `dockerfilePath`, `dockerContext`, and optional `dockerCommand` (overrides image `CMD`).\n- **`runtime: image`**: Render pulls **`image.url`**; no repo-based image build. Pair with **`registryCredential`** when the registry is private.\n\n## Blueprint Configuration\n\n| Field | Role |\n|-------|------|\n| `dockerfilePath` | Path to the Dockerfile (default `.\u002FDockerfile`) |\n| `dockerContext` | Build context directory (what is sent to the daemon) |\n| `dockerCommand` | Overrides the container `CMD` after the image is built |\n| `image.url` | Image reference for `runtime: image` (registry\u002Frepo:tag or digest) |\n| `registryCredential` | Auth for private pulls; often `fromRegistryCreds` → Dashboard-stored credential |\n\nExample sketch (values illustrative):\n\n```yaml\nservices:\n  - type: web\n    name: api\n    runtime: docker\n    region: oregon\n    plan: starter\n    dockerfilePath: .\u002FDockerfile\n    dockerContext: .\n    dockerCommand: node server.js\n    envVars:\n      - key: PORT\n        value: 10000\n```\n\nFor `runtime: image`, set `image.url` and, if needed, `registryCredential` per **Registry Configuration** below.\n\n## Multi-Stage Builds\n\n**Recommended for production.** Use a **builder** stage for compilation and dependency installation, and a minimal **runner** stage that only copies artifacts and runtime files. Benefits:\n\n- Smaller images and faster pulls\n- Fewer tools and secrets in the final image (smaller attack surface)\n- Clear separation between build-time and run-time dependencies\n\nSee `references\u002Fdockerfile-patterns.md` for language-specific templates.\n\n## Build Args vs Secrets\n\n**Critical:** **Never pass secrets via `ARG`.** Build arguments are stored in image **layers** and can be recovered from the image history or intermediate layers.\n\n- Prefer **runtime environment variables** (Render **env vars** \u002F secret files) for application secrets.\n- For **build-time** secrets (e.g. private package feeds), use **Docker BuildKit secret mounts** (`RUN --mount=type=secret,...`) rather than `ARG`.\n\nTreat anything sensitive as **runtime** or **BuildKit secret mount**, not as a build arg.\n\n## Registry Configuration\n\nPrivate **base images** (for `runtime: docker`) or **prebuilt images** (`runtime: image`) need authentication:\n\n- Store credentials in the Render Dashboard under **Registry Credentials**.\n- In Blueprint, reference them with **`registryCredential.fromRegistryCreds.name`** (match the Dashboard name).\n\nSupports common registries (Docker Hub, GHCR, ECR, Google Artifact Registry, and others). Step-by-step per provider: `references\u002Fregistry-setup.md`.\n\n**Prebuilt image services** do **not** auto-deploy when the tag moves in the registry; trigger a **manual redeploy** or use a **deploy hook** when you publish a new image.\n\n## Layer Caching\n\n- Render **caches Docker layers** between builds; **order Dockerfile instructions** so that frequently unchanged layers stay early (see `references\u002Foptimization-guide.md`).\n- **Tags and caching:** mutable tags like **`latest`** can resolve to **stale cached** images. Prefer **immutable** references: **digest** (`repo\u002Fimage@sha256:...`) or **version pins** (`v1.2.3`).\n\n## Platform Specifics\n\n- Render builds **linux\u002Famd64**. Avoid assumptions about other architectures in production images.\n- **Port binding** matches native services: bind HTTP to **`0.0.0.0:$PORT`** (Render sets `PORT`).\n- **Health checks** behave like non-Docker web services (`healthCheckPath`, etc.).\n- **Secret files** from Render appear under **`\u002Fetc\u002Fsecrets\u002F`** — do not rely on repo-root secret paths inside the container unless you copy or mount them explicitly in the image.\n\n## `.dockerignore` and Start Commands\n\n- Always maintain a **`.dockerignore`** that excludes **`node_modules`**, **`.git`**, **`.env`**, build artifacts, logs, and OS junk. This shrinks context upload time and avoids leaking local files into layers. Lists and rationale: `references\u002Foptimization-guide.md`.\n- **Custom start command:** if you need multiple shell steps, use a single shell form, e.g. **`\u002Fbin\u002Fsh -c 'set -e; .\u002Fmigrate && exec node server.js'`** (prefer **`exec`** so your app receives signals for graceful shutdown).\n\n## References\n\n| Document | Contents |\n|----------|----------|\n| `references\u002Fdockerfile-patterns.md` | Multi-stage templates (Node, Python, Go, Ruby, Rust, static sites) |\n| `references\u002Fregistry-setup.md` | Docker Hub, GHCR, ECR, Artifact Registry + Blueprint wiring |\n| `references\u002Foptimization-guide.md` | Layer order, `.dockerignore`, BuildKit cache mounts, debugging |\n\n## Related Skills\n\n- **render-deploy** — Deploy flows, Blueprint vs Dashboard, operational steps\n- **render-blueprints** — Full `render.yaml` schema, wiring, and validation\n- **render-web-services** — Web service behavior, health checks, and HTTP edge cases\n",{"name":5,"license":14,"metadata":23,"description":7,"compatibility":27},{"author":24,"version":25,"category":26},"Render","1.0.0","deployment","Any Render compute service (web, private, worker, cron) with runtime: docker or runtime: image.","main","9ba3c9fadff1092395837bf1502e1b8a7f98b1e1","plugins\u002Fofficial\u002Frender\u002Fskills\u002Frender-docker","https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins","https:\u002F\u002Fgithub.com\u002FConcertoNotes","2026-06-26 10:13:54",{"source":8,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add ConcertoNotes\u002Fcodex-plugins --skill render-docker",{"tool":40,"command":41},"bunx","bunx skills add ConcertoNotes\u002Fcodex-plugins --skill render-docker",{"tool":43,"command":44},"pnpm","pnpm dlx skills add ConcertoNotes\u002Fcodex-plugins --skill render-docker","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Frender\u002Fskills\u002Frender-docker\u002FSKILL.md",true,[48,54,58,62],{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"agents\u002Fopenai.yaml","REFERENCE","参考文档",204,"https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Frender\u002Fskills\u002Frender-docker\u002Fagents\u002Fopenai.yaml",{"path":55,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":56,"sourceHtmlUrl":57},"references\u002Fdockerfile-patterns.md",5495,"https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Frender\u002Fskills\u002Frender-docker\u002Freferences\u002Fdockerfile-patterns.md",{"path":59,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":60,"sourceHtmlUrl":61},"references\u002Foptimization-guide.md",3297,"https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Frender\u002Fskills\u002Frender-docker\u002Freferences\u002Foptimization-guide.md",{"path":63,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":64,"sourceHtmlUrl":65},"references\u002Fregistry-setup.md",3118,"https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Frender\u002Fskills\u002Frender-docker\u002Freferences\u002Fregistry-setup.md",[67,76,83,91,98,105],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":71,"licenseFileUrl":72,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":18},"01M77YB7WW36DS9AERTWP673E0","android-emulator-qa","Use when validating Android feature flows in an emulator with adb-driven launch, input, UI-tree inspection, screenshots, and logcat capture.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Ftest-android-apps\u002Fskills\u002Fandroid-emulator-qa\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Ftest-android-apps\u002Fskills\u002Fandroid-emulator-qa\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":18},"01M77Y7AA8N45G6NM0WJSS2W9C","supabase-postgres-best-practices","Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.","https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Fsupabase\u002Fskills\u002Fsupabase-postgres-best-practices\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":71,"licenseFileUrl":87,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":18},"01M77Y2W5H5YGSW7MYWEJ8HYXD","sentry","Use when the user asks to inspect Sentry issues or events, summarize recent production errors, or pull basic Sentry health data via the Sentry API; perform read-only queries with the bundled script and require `SENTRY_AUTH_TOKEN`.","https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Fsentry\u002Fskills\u002Fsentry\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Fsentry\u002Fskills\u002Fsentry\u002FSKILL.md",[],[],{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":18},"01M77Y06GV1DAME7PN9KBFHWRX","render-workflows","Sets up, develops, tests, and deploys Render Workflows. Covers first-time scaffolding (via CLI or manual), SDK installation (Python or TypeScript), task patterns (retries, subtasks, fan-out), local development, Dashboard deployment, and troubleshooting. Use when a user wants to set up Render Workflows for the first time, scaffold a workflow service, add or modify workflow tasks, test workflows locally, or deploy workflows to Render.","https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Frender\u002Fskills\u002Frender-workflows\u002FSKILL.md",[],[],{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":18},"01M77Y01A6RJA8VYT7CZ2TVETF","render-web-services","Configures Render web services—port binding, TLS, health checks, custom domains, auto-deploy, PR previews, persistent disks, and deploy lifecycle. Use when the user needs to set up a web service, fix health check failures, add a custom domain, configure zero-downtime deploys, or troubleshoot port binding issues.","https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Frender\u002Fskills\u002Frender-web-services\u002FSKILL.md",[],[],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":18},"01M77XZW1AZ6B6NZTWWFVY72T3","render-static-sites","Deploys and configures static sites on Render's global CDN—build commands, publish paths, SPA routing, redirects, custom headers, and PR previews. Use when the user needs to deploy a static site, set up a React\u002FVue\u002FHugo\u002FGatsby frontend, configure SPA fallback routing, add redirect rules, customize response headers, or choose between a static site and a web service for their frontend. Trigger terms: static site, CDN, SPA, single-page app, React deploy, Vue deploy, Hugo, Gatsby, Docusaurus, Jekyll, staticPublishPath.","https:\u002F\u002Fgithub.com\u002FConcertoNotes\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fofficial\u002Frender\u002Fskills\u002Frender-static-sites\u002FSKILL.md",[],[]]