Expand description
Hadolint-RS: Native Rust Dockerfile Linter
A Rust translation of the Hadolint Dockerfile linter.
§Attribution
This module is a derivative work based on Hadolint, originally written in Haskell by Lukas Martinelli and contributors.
Original Project: https://github.com/hadolint/hadolint Original License: GPL-3.0 Original Copyright: Copyright (c) 2016-2024 Lukas Martinelli and contributors
This Rust translation is licensed under GPL-3.0 as required by the original license. See THIRD_PARTY_NOTICES.md and LICENSE files for full details.
§Features
- Dockerfile parsing into an AST
- Configurable linting rules (DL3xxx, DL4xxx)
- ShellCheck-inspired RUN instruction analysis
- Inline pragma support for ignoring rules
§Example
ⓘ
use syncable_cli::analyzer::hadolint::{lint, HadolintConfig, LintResult};
let dockerfile = r#"
FROM ubuntu:latest
RUN apt-get update && apt-get install -y nginx
"#;
let config = HadolintConfig::default();
let result = lint(dockerfile, &config);
for failure in result.failures {
println!("{}: {} - {}", failure.line, failure.code, failure.message);
}Re-exports§
pub use config::HadolintConfig;pub use formatter::Formatter;pub use formatter::OutputFormat;pub use formatter::format_result;pub use formatter::format_result_to_string;pub use lint::LintResult;pub use lint::lint;pub use lint::lint_file;pub use types::CheckFailure;pub use types::RuleCode;pub use types::Severity;
Modules§
- config
- Configuration for the hadolint-rs linter.
- formatter
- Output formatters for hadolint-rs lint results.
- lint
- Main linting orchestration for hadolint-rs.
- parser
- Dockerfile parser module.
- pragma
- Pragma parsing for inline rule ignores.
- rules
- Rule system framework for hadolint-rs.
- shell
- Shell parsing module for hadolint-rs.
- types
- Core types for the hadolint-rs linter.