Docker Skill
Purpose
Generate Dockerfile in the project root directory for containerization and deployment.
Output
Create the file: Dockerfile (in project root)
Template
See: examples.md for the exact configuration template with placeholders.
Conditional Logic
Component Library Authentication
Check parameter: include_component_library
If "yes": Replace {{COMPONENT_LIBRARY_AUTH}} with:
RUN --mount=type=secret,id=vite_access_token \
export VITE_ACCESS_TOKEN=$(cat /run/secrets/vite_access_token) && \
echo "@RoyalAholdDelhaize:registry=https://npm.pkg.github.com" > .npmrc && \
echo "//npm.pkg.github.com/:_authToken=${VITE_ACCESS_TOKEN}" >> .npmrc
If "no": Replace {{COMPONENT_LIBRARY_AUTH}} with empty string (remove lines)
Note: RUN npm install is always present after the placeholder, regardless of component library choice.
Key Features
- Base image: Ubuntu Node.js 22 LTS from Azure Container Registry
- Quality checks: Runs lint, stylelint, and unit tests during build
- Nginx: Installs and configures nginx for serving static files
- Security: Runs as non-root user (nodejs_svc)
- Port: Exposes 8080
- Optimization: Cleans apt cache to reduce image size
Notes
- All configuration values are production-ready defaults
- Build fails if quality checks don't pass
- Component library authentication uses Docker secrets for security
- References nginx configuration files created by nginx skills