webdev-custom-dockerfile

Write deploy-compatible root Dockerfiles for fullstack web projects needing extra system binaries or runtimes.

1|Updated Jul 17, 2026
One-click install
npx skills add https://github.com/waiyanphyo999/telegram-bot-deploy --skill webdev-custom-dockerfile-waiyanphyo999
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: webdev-custom-dockerfile
Source: https://github.com/waiyanphyo999/telegram-bot-deploy/tree/main/skills/webdev-custom-dockerfile
Command: npx skills add https://github.com/waiyanphyo999/telegram-bot-deploy --skill webdev-custom-dockerfile-waiyanphyo999

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When a Manus webdev fullstack project needs production capabilities beyond the auto-generated deploy image — such as ffmpeg, Chromium, CJK fonts, or a second language runtime like Java, Go, or Rust — you must supply a custom root Dockerfile that satisfies the platform's strict build contract (300-second build budget, 512 MiB runtime, secret injection, committed-only build context). ## Core Features & Use Cases - Deploy Contract Reference: Explains how the platform consumes a root Dockerfile, including build context rules, forced .dockerignore contents, secret ENV injection after every FROM line, and layer-cache behavior. - Base Image Guidance: Provides decision rules for choosing node:22-slim versus inverting to another runtime's official image (eclipse-temurin, golang, rust), with libc-mismatch warnings. - Worked Examples: Includes ready Dockerfile patterns for headless Chromium with puppeteer, Java runtime with Node via NodeSource, and multi-stage Go builds copying a static binary. - Use Case: Your app must convert uploaded videos with ffmpeg in production. Use this Skill to write a node:22-slim-based Dockerfile that apt-installs ffmpeg, runs the full pnpm build in-image, keeps node_modules, and fits the cold-builder time budget. ## Quick Start Ask the AI to write a deploy-compatible Dockerfile for the project that adds the system binary or runtime you need, following the platform's build and runtime rules.

Frequently Asked Questions about webdev-custom-dockerfile

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add ffmpeg or Chromium to a Node.js deployment Dockerfile?

Use node:22-slim as the base image and apt-get install the packages, since it is Debian 12 bookworm where ffmpeg, chromium, and fonts-noto-cjk are available. For puppeteer, set PUPPETEER_SKIP_DOWNLOAD=true and PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium to use the apt-provided binary.

When should I write a custom Dockerfile instead of using the auto-generated one?

Only when production requires an extra system binary or another language runtime such as Python, Java, Go, or Rust. A custom Dockerfile does not make deploys faster or more reliable, so plain Node apps should rely on the auto-generated image.

How do I combine Java and Node.js in one Docker image?

Start FROM eclipse-temurin:21-jre and add Node via the NodeSource setup script, installing curl first since it is not preinstalled. The reverse direction, adding Java to a Node base, is unreliable because openjdk-21 is not in Debian bookworm.

Why does my Docker build fail or time out during deployment?

Builds run on a small Cloud Build machine with a hard ~300-second timeout including base image pulls, and intermediate multi-stage layers rebuild from scratch every deploy. Read the last 6000 characters of the build log returned in the deploy result, then trim compilation or use prebuilt binaries.

Can I use .dockerignore or COPY .env in the Dockerfile?

No. The platform overwrites .dockerignore with a fixed list, and .env files are never in the build context. All secrets are injected automatically as ENV after every FROM line at build time and at runtime, so never write secret literals in the Dockerfile.

Why does pnpm install fail with ENOENT in a multi-stage Dockerfile?

The template uses pnpm patchedDependencies, so the patches directory must be copied before running pnpm install. Add COPY patches ./patches before the install step, or simply COPY . . before installing to avoid the issue.