make-audit VS hadolint

Compare make-audit vs hadolint and see what are their differences.

make-audit

Easy-to-use tool for auditing Makefiles for errors (by david-a-wheeler)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
make-audit hadolint
3 25
4 9,772
- 1.5%
10.0 7.3
over 1 year ago 11 days ago
Python Haskell
MIT License GNU General Public License v3.0 only
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

make-audit

Posts with mentions or reviews of make-audit. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-08-14.
  • Make-audit: Easy-to-use tool for auditing Makefiles for errors
    1 project | news.ycombinator.com | 29 Oct 2023
  • Checkmake: Experimental Linter/Analyzer for Makefiles
    6 projects | news.ycombinator.com | 14 Aug 2022
    Cool!

    I also have an experimental (GNU) makefile auditor called "make-audit", available here: https://github.com/david-a-wheeler/make-audit

    Per its README: "It will report when an execution of make reads or changes files in ways that are inconsistent with its Makefile. It requires an "auditor" tool named pmaudit in your PATH. It also requires GNU make to be installed and run as make."

    Sadly, make-audit is also rather experimental. As I say in its README, "This is an extremely early version. Much needs fixing." For example:

    * This doesn't properly handle grouped targets or empty commands. It should handle makefiles with their own SHELL and .ONESHELL values.

    * I don't think it handles multi-line make commands exactly correctly (it's close but not quite right).

    * Lots more options are needed.

    * It needs a better internal test suite.

    Still, make-audit does do some useful things, and it'd be awesome if others would be willing to work with me to make it reliably useful.

  • Using Landlock to Sandbox GNU Make
    10 projects | news.ycombinator.com | 7 Aug 2022
    This is very cool.

    A while back I started an experiment/prototype called "make-audit"; this is a (draft) tool to report when an execution of GNU make reads or changes files in ways that are inconsistent with its Makefile: https://github.com/david-a-wheeler/make-audit It's nowhere ready for serious use, but it can detect the following:

    * Error: Target TARGET : unreported prerequisites: SET : The make recipe for creating TARGET is reading from the prerequisites in SET, but the makefile fails to report them as dependencies. You may want to add SET to the prerequisites of TARGET.

    * Error: Target TARGET : claimed but unused prerequisites: SET : The make recipe for creating TARGET claims that it depends on SET, but the items in SET were never read. You may want to remove SET from the prerequisites of TARGET.

    * Error: Target TARGET : unreported target: SET The make recipe for updating TARGET also modifies the files in SET but this is not reported.

    * Error: Target TARGET : unmodified reported target: SET

    This depended on Poor Man's File Auditor (pmaudit): https://github.com/boyski/pmaudit

hadolint

Posts with mentions or reviews of hadolint. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-05-01.
  • Cloud Security and Resilience: DevSecOps Tools and Practices
    10 projects | dev.to | 1 May 2024
    3. Hadolint: https://github.com/hadolint/hadolint Hadolint is a Dockerfile linter that helps you build best practice Docker images, reducing vulnerabilities in your container configurations.
  • Dockerfile Linter
    1 project | news.ycombinator.com | 3 Mar 2024
  • Writing a Minecraft server from scratch in Bash (2022)
    5 projects | news.ycombinator.com | 2 Mar 2024
    To skip the "move your scripts to standalone files" step some devs don't like, consider something like https://github.com/hadolint/hadolint which runs Shellcheck over inline scripts within Containerfiles.
  • I reduced the size of my Docker image by 40% – Dockerizing shell scripts
    4 projects | news.ycombinator.com | 3 Feb 2024
    This is neat :)

    I love going and making containers smaller and faster to build.

    I don't know if it's useful for alpine, but adding a --mount=type=cache argument to the RUN command that `apk add`s might shave a few seconds off rebuilds. Probably not worth it, in your case, unless you're invalidating the cached layer often (adding or removing deps, intentionally building without layer caching to ensure you have the latest packages).

    Hadolint is another tool worth checking out if you like spending time messing with Dockerfiles: https://github.com/hadolint/hadolint

  • Top 10 common Dockerfile linting issues
    1 project | dev.to | 15 Sep 2023
    With Depot, we make use of two Dockerfile linters, hadolint and a set of Dockerfile linter rules that Semgrep has written to make a bit of a smarter Dockerfile linter.
  • hadolint - Dockerfile linter
    1 project | dev.to | 16 Aug 2023
    # Download hadolint wget https://github.com/hadolint/hadolint/releases/download/v2.12.0/hadolint-Linux-x86_64 # Download SHA256 checksum wget https://github.com/hadolint/hadolint/releases/download/v2.12.0/hadolint-Linux-x86_64.sha256 # Validate the checksum sha256sum -c hadolint-Linux-x86_64.sha256 # Make the file executable chmod + ./hadolint-Linux-x86_64 # Rename the file mv hadolint-Linux-x86_64 hadolint
  • Haskell Dockerfile Linter
    1 project | news.ycombinator.com | 20 Apr 2023
  • Is adding a USER best practice?
    1 project | /r/docker | 21 Mar 2023
    The most common linter I've seen and used it Hadolint, which does: https://github.com/hadolint/hadolint/wiki/DL3002 I didn't bother checking to see if alternatives also support this as well though.
  • Checkmake: Experimental Linter/Analyzer for Makefiles
    6 projects | news.ycombinator.com | 14 Aug 2022
    Some discussion on that here:

    https://github.com/koalaman/shellcheck/issues/58

    The hadolint project does shell checking for Dockerfiles and it uses shellcheck:

    https://github.com/hadolint/hadolint

    So the approach is definitely feasible, but you do need a new project and probably it needs to be written in Haskell.

  • Dokter: the doctor for your Dockerfiles
    2 projects | /r/Python | 12 Aug 2022
    how does this compare to something like hadolint?

What are some alternatives?

When comparing make-audit and hadolint you can also consider the following projects:

Microsoft Research Detours Package - Detours is a software package for monitoring and instrumenting API calls on Windows. It is distributed in source code form.

trivy - Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more

checkmake - experimental linter/analyzer for Makefiles

dockle - Container Image Linter for Security, Helping build the Best-Practice Docker Image, Easy to start

chromium - The official GitHub mirror of the Chromium source

docker-bench-security - The Docker Bench for Security is a script that checks for dozens of common best-practices around deploying Docker containers in production.

Bazel - a fast, scalable, multi-language and extensible build system

stan - 🕵️ Haskell STatic ANalyser

BuildXL - Microsoft Build Accelerator

hlint - Haskell source code suggestions

cosmopolitan - build-once run-anywhere c library

grype - A vulnerability scanner for container images and filesystems