# Линтер Dockerfile (набор правил Hadolint)

Вставьте Dockerfile и получите статический анализ в стиле Hadolint без Docker-демона: теги базового образа, USER root, sudo, гигиена apt/apk/yum/dnf, фиксация версий npm/pip/yarn, ADD против COPY, склейка слоёв, pipefail, порты EXPOSE, секреты в ENV — 30+ правил по уровням серьёзности с номерами строк, причинами и примерами исправлений плюс построчно размеченный исходник.

> Каноническая страница: https://elysiatools.com/ru/tools/dockerfile-linter

- **Категория:** Development

- **Ключевые слова:** dockerfile, hadolint, линтер, практики docker, образ контейнера

## Обзор

Идентификаторы и серьёзность соответствуют исходникам Hadolint v2.15 (DL4000 MAINTAINER=error, DL3025 CMD в shell-форме=warning, отсутствующий HEALTHCHECK DL3057 по умолчанию игнорируется, включается опцией). Разбор уважает семантику Dockerfile: директива # escape=, склейка строк, BuildKit-хередоки (RUN <<EOF), JSON-форма, сброс состояния на каждом FROM многоэтапных сборок и подавление через # hadolint ignore=DLxxxx. Правила пакетных менеджеров работают по токенам команд (apt-get update без rm -rf /var/lib/apt/lists в той же RUN → DL3009 и т.п.); npm install без @version → DL3016; pip install без == и без --no-cache-dir → DL3013/DL3042. BP001 — расширение платформы: напоминание про .dockerignore при COPY . .

## Входные данные

- **Содержимое Dockerfile** (textarea): FROM node:20-alpine WORKDIR /app COPY . . RUN npm ci --omit=dev CMD \["node", "server.js"\]
- **Минимальная отображаемая серьёзность** (select)
- **Включить правило HEALTHCHECK (DL3057)** (checkbox)

## Когда использовать

- Перед сборкой образа, чтобы поймать :latest, USER root, sudo и незафиксированные пакеты.
- При ревью многоэтапных Dockerfile: сброс состояния на FROM, JSON-форму CMD и HEALTHCHECK.
- Когда нужно проверить гигиену apt/apk, ADD против COPY и секреты в ENV без запуска демона.

## Как это работает

- Вставьте текст Dockerfile в основное поле.
- Выберите минимальную отображаемую серьёзность (info, warning или error) и при необходимости включите правило HEALTHCHECK (DL3057).
- Разбор учитывает семантику Dockerfile: # escape=, склейку строк, BuildKit-хередоки, JSON-форму, многоэтапный сброс на FROM и # hadolint ignore=DLxxxx.
- На выходе — список находок с ID правил Hadolint v2.15, строками, объяснениями и примерами правок плюс аннотированный исходник.

## Сценарии использования

- Проверка production Dockerfile перед коммитом или CI на типичные антипаттерны.
- Ревью многоэтапной Node- или Python-сборки: не-root USER, JSON CMD и зафиксированные зависимости.
- Обучение практикам Docker: теги образов, склейка RUN, очистка кэша apt и отсутствие секретов в ENV.

## Частые вопросы

### Нужен ли Docker-демон?

Нет. Анализ полностью статический и не требует Docker.

### Какие правила проверяются?

Более 30 правил Hadolint v2.15: DL4000 MAINTAINER, теги образов, гигиена пакетных менеджеров, фиксация npm/pip/yarn, ADD против COPY, USER root, секреты в ENV, порты EXPOSE и другие, плюс напоминание BP001 про .dockerignore при COPY . .

### Как отключить отдельное правило?

Добавьте в Dockerfile комментарий # hadolint ignore=DLxxxx на нужной строке.

### Что делает опция HEALTHCHECK?

Включает правило DL3057 об отсутствии HEALTHCHECK. По умолчанию оно включено.

### Поддерживаются ли многоэтапные сборки?

Да. Состояние правил сбрасывается на каждом FROM.

## Связанные инструменты

- [Проверка цветовой визуальной доступности](https://elysiatools.com/ru/tools/color-vision-accessibility-checker): Измеряет контраст WCAG, моделирует основные нарушения цветового зрения и помечает слабоконтрастные зоны.
- [Линтер HTML для email](https://elysiatools.com/ru/tools/email-html-linter): Проверяет кросс-клиентную совместимость HTML-шаблонов email: неподдерживаемые flex/grid, не-инлайн CSS, ловушки рендеринга Word в Outlook, проблемы вёрстки таблицами и недостатки доступности. Покрывает ограничения Gmail/Outlook/Apple Mail.
- [Проверка доступности](https://elysiatools.com/ru/tools/accessibility-checker): Находит типовые проблемы WCAG 2.1 в HTML, страницах или макетах и возвращает рекомендации по исправлению
- [Аудитор зависимостей package.json](https://elysiatools.com/ru/tools/package-json-dependency-auditor): Проверяет package.json на гигиену зависимостей и качество диапазонов версий, а также при желании исследует транзитивное дерево из package-lock.json или yarn.lock. Отмечает дубликаты, wildcard/pre-release, неотсортированные ключи, отсутствующие метаданные и неверную классификацию runtime/dev зависимостей.
- [Синхронизатор палитры Tailwind](https://elysiatools.com/ru/tools/tailwind-color-palette-sync): Введите HEX, выберите схему именования (шкала 50–950 / одно имя / вложенность) — генерирует фрагмент theme.extend.colors для tailwind.config.ts с уровнями WCAG AA/AAA. Тёмная тема опциональна.
- [Генератор отчета по аудиту доступности](https://elysiatools.com/ru/tools/accessibility-audit-report-generator): Проверяет HTML или URL на распространенные проблемы WCAG и экспортирует структурированный PDF-отчет
- [Извлечение палитры из изображения](https://elysiatools.com/ru/tools/image-color-palette-extractor): Загружает изображение, извлекает доминирующие цвета и экспортирует токены для кода с проверкой контраста
- [Анализатор изображений VP8](https://elysiatools.com/ru/tools/vp8-image-analyzer): Анализирует WebP/VP8 через Sharp, создает grayscale displacement map и рендерит 3D-рельеф в Three.js

## Примеры

- [Примеры Обработки Изображений Android Java](https://elysiatools.com/ru/samples/android-image-processing-java): Примеры обработки изображений Android Java включая чтение/сохранение, масштабирование и преобразование формата
- [Примеры Обработки Изображений Android Kotlin](https://elysiatools.com/ru/samples/android-image-processing-kotlin): Примеры обработки изображений Android Kotlin включая чтение/сохранение, масштабирование и преобразование формата
- [Примеры Обработки Изображений Web Python](https://elysiatools.com/ru/samples/web-image-processing-python): Примеры обработки изображений Web Python используя PIL/Pillow включая чтение, сохранение, изменение размера и преобразование формата
- [Примеры Обработки Изображений Web Rust](https://elysiatools.com/ru/samples/web-image-processing-rust): Примеры обработки изображений Web Rust включая чтение/запись, масштабирование и преобразование форматов

## Связанные материалы

- [Инструменты конвертации форматов изображений и анимированного экспорта](https://elysiatools.com/ru/hubs/image-convert): Сравните конвертеры JPG, PNG, GIF, AVIF, WebP, TIFF, ICO, base64 и инструменты экспорта анимированных изображений в одном хабе.
- [Инструменты для очистки, оформления и пакетной подготовки изображений](https://elysiatools.com/ru/hubs/image-utility): Соберите в одном хабе инструменты для очистки изображений, обрезки, добавления полей и рамок, пакетного изменения размера и сжатия, водяных знаков и финальной визуальной подготовки.
- [Инструменты метаданных изображений, EXIF и очистки приватности](https://elysiatools.com/ru/hubs/image-metadata): Сравните просмотрщики метаданных, инспекторы EXIF/IPTC/XMP, исправление ориентации, редакторы метаданных и инструменты удаления приватных данных из изображений.
- [Инструменты очистки, изменения размера и улучшения деталей изображения](https://elysiatools.com/ru/hubs/image-cleanup-resize-and-detail-enhancement): Подготавливайте изображения с коррекцией ориентации, обрезкой, шумоподавлением, изменением размера, резкостью и пакетной конвертацией.
