一键导入
docker-lint
Dockerfile best practices check - Use hadolint to validate Dockerfile security, performance, and compliance
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Dockerfile best practices check - Use hadolint to validate Dockerfile security, performance, and compliance
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
AI Agent code quality check - Use Ruff to check code standards for LangChain, AutoGen, and other AI Agent projects
Structure, validate, and locally manage evolution assets (Gene, Capsule, EvolutionEvent). Use when the user wants to record a solution, document a bug fix, create a Gene or Capsule, capture an evolution process, or compute an asset_id locally. No network connection required. Trigger keywords: Gene, Capsule, EvolutionEvent, evolution asset, asset_id, record solution, save fix, document repair.
Format JavaScript/TypeScript code with Prettier
Format Python code with Black
Kubernetes YAML validation - Use kube-linter and kubeconform to check K8s config security and best practices
Check JavaScript/TypeScript code quality with ESLint
| name | docker-lint |
| description | Dockerfile best practices check - Use hadolint to validate Dockerfile security, performance, and compliance |
This skill uses hadolint (Dockerfile linter) to check Docker image build files for best practices, ensuring:
| Tool | Min Version | Check Command | Installation |
|---|---|---|---|
| Docker | 20.10+ | docker --version | docker.com |
| hadolint | 2.12+ | hadolint --version | See installation below |
Windows (Scoop recommended):
scoop install hadolint
Linux:
wget -O /usr/local/bin/hadolint https://github.com/hadolint/hadolint/releases/latest/download/hadolint-Linux-x86_64
chmod +x /usr/local/bin/hadolint
macOS:
brew install hadolint
Docker (all platforms):
docker pull hadolint/hadolint
Note: The script will auto-detect and prompt for installation, supporting Docker container run mode.
"Use docker-lint skill to check my Dockerfile"
Check single Dockerfile:
# Windows
.\.agents\skills\docker-lint\scripts\lint.ps1
# Linux/Mac
./.agents/skills/docker-lint/scripts/lint.sh
Check specific file:
# Windows
.\.agents\skills\docker-lint\scripts\lint.ps1 -File ".\docker\Dockerfile.prod"
# Linux/Mac
./.agents/skills/docker-lint/scripts/lint.sh docker/Dockerfile.prod
Check all Dockerfiles in directory:
# Windows
.\.agents\skills\docker-lint\scripts\lint.ps1 -Path ".\containers" -Recursive
# Linux/Mac
./.agents/skills/docker-lint/scripts/lint.sh -r containers/
WORKDIR instead of cdCOPY instead of ADDlatest tagMAINTAINER is deprecated🐳 Docker Lint - Checking Dockerfile...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 File: Dockerfile
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Dockerfile:1 DL3006 warning: Always tag the version of an image explicitly
FROM python:3
^
Dockerfile:5 DL3008 warning: Pin versions in apt-get install
RUN apt-get update && apt-get install -y git
^
Dockerfile:15 DL3002 error: Last USER should not be root
USER root
^
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Check Results:
❌ Errors: 1
⚠️ Warnings: 2
💡 Info: 0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 Suggestions:
1. Pin base image version: FROM python:3.11-slim
2. Pin apt package version: git=1:2.34.1-1ubuntu1.10
3. Use non-root user: USER appuser
Create .hadolint.yaml in the project root to customize rules:
# .hadolint.yaml
ignored:
- DL3008 # Allow unpinned apt package versions (dev environment)
trustedRegistries:
- docker.io
- gcr.io
- ghcr.io
label-schema:
author: email
version: semver
# Custom severity
override:
error:
- DL3002 # root user is error level
warning:
- DL3008 # unpinned version is warning level
info:
- DL3015 # package update suggestion is info level
Problem Dockerfile:
FROM python:3
RUN apt-get update && apt-get install -y git
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
USER root
CMD python app.py
Fixed Dockerfile:
# Pin base image version
FROM python:3.11-slim
# Create non-root user
RUN groupadd -r appuser && useradd -r -g appuser appuser
# Pin package versions and clean cache
RUN apt-get update && \
apt-get install -y --no-install-recommends \
git=1:2.34.1-1ubuntu1.10 && \
rm -rf /var/lib/apt/lists/*
# Set working directory
WORKDIR /app
# Copy dependency file first (leverage caching)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Then copy application code
COPY --chown=appuser:appuser . .
# Switch to non-root user
USER appuser
# Use JSON format
CMD ["python", "app.py"]
name: Lint Dockerfile
on: [push, pull_request]
jobs:
hadolint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: Dockerfile
hadolint:
image: hadolint/hadolint:latest-alpine
script:
- hadolint Dockerfile
Q: What if hadolint is not installed?
A: The script will automatically try to run hadolint using Docker container
Q: How to ignore specific rules?
A: Add a comment in the Dockerfile:
# hadolint ignore=DL3008
RUN apt-get install -y git
Q: Does it support multi-stage builds?
A: Fully supported, hadolint checks best practices for each stage
Q: Can it check docker-compose.yml?
A: hadolint focuses on Dockerfile, use docker-compose config --quiet for docker-compose validation