Lint a Dockerfile for best practices: pin image versions, avoid running as root, combine RUN layers, use --no-install-recommends, detect secrets in ENV, and more; generate a best-practice multi-stage Dockerfile for Node.js, Python, Go, .NET, Java, or static/Nginx sites; or build a docker-compose.yml visually from services, ports, volumes, and environment variables.
Paste your Dockerfile and click Lint.
Lint your Dockerfile for best practices, security issues, and optimization opportunities.
Lint a Dockerfile for best practices: pin image versions, avoid running as root, combine RUN layers, use --no-install-recommends, detect secrets in ENV, and more; generate a best-practice multi-stage Dockerfile for Node.js, Python, Go, .NET, Java, or static/Nginx sites; or build a docker-compose.yml visually from services, ports, volumes, and environment variables.
Paste your Dockerfile into the Docker Tools Linter tab. It flags issues such as :latest image tags, no USER instruction (running as root), apt-get without -y or --no-install-recommends, ADD instead of COPY, a missing HEALTHCHECK and likely secrets in ENV.
Yes. The Generate tab produces a Dockerfile for Node.js, Python, Go, .NET, Java or a static site served by Nginx, with multi-stage builds for most stacks (optional for Node.js and Java).
In the Compose tab, switch to Generate, pick your app stack and optionally include PostgreSQL and Redis services. You can also paste an existing compose file and lint it.
Yes, the .dockerignore Generator tab builds one for the stack you select so you can keep the build context small.
No. This tool runs entirely in your browser — your input is processed locally on your device and is never uploaded or stored on a server.