conftest VS hadolint

Compare conftest vs hadolint and see what are their differences.

conftest

Write tests against structured configuration data using the Open Policy Agent Rego query language (by open-policy-agent)
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
conftest hadolint
9 25
2,790 9,772
0.5% 1.5%
8.5 7.3
11 days ago 11 days ago
Go Haskell
GNU General Public License v3.0 or later 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.

conftest

Posts with mentions or reviews of conftest. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-28.
  • Validation on list(object) variables
    1 project | /r/Terraform | 8 May 2023
    I wrote following conftest.dev (OPA), sample policy
  • The default.go file meaning
    1 project | /r/golang | 22 Apr 2023
  • Introducing Conftest and setting up CI with Github Actions to automate reviewing of Terraform code
    3 projects | dev.to | 28 Dec 2021
    name: tf-plan-apply on: pull_request: branches: [ main ] env: TF_VERSION: 1.0.0 CONFTEST_VERSION: 0.28.3 WORKING_DIR: ./ jobs: terraform: name: aws-eureka-pairs-etc-s3 runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Install conftest run: | wget -O - 'https://github.com/open-policy-agent/conftest/releases/download/v${{ env.CONFTEST_VERSION }}/conftest_${{ env.CONFTEST_VERSION }}_Linux_x86_64.tar.gz' | tar zxvf - ./conftest --version //❶ - name: Setup Terraform uses: hashicorp/setup-terraform@v1 with: terraform_wrapper: false //❷ terraform_version: ${{ env.TF_VERSION }} cli_config_credentials_token: ${{ secrets.YOUR_CRED_NAME}} - name: Terraform Init ${{ env.WORKING_DIR }} working-directory: ${{ env.WORKING_DIR }} run: terraform init - name: Terraform Plan ${{ env.WORKING_DIR }} if: github.event_name == 'pull_request' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} working-directory: ${{ env.WORKING_DIR }} id: plan run: terraform plan -out=tfplan -no-color -lock=false -parallelism=50 - name: Convert terraform plan result to json formmat if: github.event_name == 'pull_request' id: convert working-directory: ${{ env.WORKING_DIR }} run: terraform show -json tfplan > tfplan.json - name: conftest test if: github.event_name == 'pull_request' id: conftest run: ./conftest test --no-color ${{ env.WORKING_DIR }}/tfplan.json //❸
  • Kubernetes Security Checklist 2021
    28 projects | dev.to | 18 Oct 2021
    Workload configuration should be audited regularly (Kics, Kubeaudit, Kubescape, Conftest, Kubesec, Checkov)
  • Don't let your Terraform go rogue with Conftest and the Open Policy Agent
    2 projects | dev.to | 25 Jun 2021
    Insert Conftest! As they state in their GitHub description, Conftest tests against structured configuration data using the Open Policy Agent Rego query language. In the case of Terraform, this means we're actually running unit tests against sample JSON and actual tests against the Terraform state JSON.
  • Using Open Policy Agent and Conftest to Validate Your Openshift 4 IPI Configuration
    1 project | dev.to | 25 Jun 2021
    While Rego is the policy language we use to assemble our policies, we still need something to run those policies with. If you have a cluster and you want to actively evaluate policies, you can end up running an instance of Open Policy Agent and it's associated tooling. However in our case, we just want to check things at runtime (or just on some recurring basis such as when changes get checked in or a pull request is submitted). In the latter instance, we are able to use another tool from the Open Policy Agent project called ConfTest. What ConfTest allows us to do is to specify a file or directory of files that we want to inspect along with the set of policies we want to inspect them with. It then takes all of that and dumps out the associated outputs from those policies and tell us the results (i.e. the messages, how many policies were checked and the results of those policies). This tool is much better suited for our use case, so this is what we will proceed with. To grab the latest version of ConfTest, you can grab the latest release from here.
  • !!!*IMP: Conftest Integration with AWS or Other*!!!!
    1 project | /r/devopsish | 18 Jun 2021
    OR HOW TO RUN https://github.com/open-policy-agent/conftest AS CI/CD in Circle CI to apply policies?
  • Terraforming in 2021 – new features, testing and compliance
    12 projects | dev.to | 2 May 2021
    If you like terraform-compliance, Conftest might also be worth having a look. It has its own DSL to write policies, and allows you to test multiple frameworks. We found this blog post from Lennard Eijsackers very informative, and would thus rather recommend you to check it out.
  • Mental models for understanding Kubernetes Pod Security Policy PSP
    4 projects | /r/kubernetes | 16 Jan 2021
    Can Gatekeeper and Conftest single-source the same set of rules? I'm looking at https://github.com/open-policy-agent/conftest/issues/54#issuecomment-528988831 and not seeing how.

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 conftest and hadolint you can also consider the following projects:

checkov - Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by Bridgecrew.

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

terratest - Terratest is a Go library that makes it easier to write automated tests for your infrastructure code.

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

tfsec - Security scanner for your Terraform code [Moved to: https://github.com/aquasecurity/tfsec]

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.

tflint - A Pluggable Terraform Linter

stan - 🕵️ Haskell STatic ANalyser

inspec - InSpec: Auditing and Testing Framework

hlint - Haskell source code suggestions

gatekeeper-library - 📚 The OPA Gatekeeper policy library

grype - A vulnerability scanner for container images and filesystems