Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Add Hadolint Dockerfile Linter POC #267

Closed
wants to merge 5 commits into from

Conversation

adzuci
Copy link
Contributor

@adzuci adzuci commented Sep 28, 2022

This PR is an attempt at testing out a fairly nascent linter and is being added due to a Slack converstion with SRE.

See openedx-unsupported/edx-analytics-dashboard#1366 for competing linter

Currently we review dockerfiles by pasting them into https://www.fromlatest.io/#/ and reading https://2u-internal.atlassian.net/wiki/spaces/SRE/pages/19265642/Dockerfile+Best+Practices at 2U.

Docs:

https://github.com/marketplace/actions/hadolint-action

Next steps:

  1. Fix {{ error
  2. Address the findings
  3. Update https://2u-internal.atlassian.net/wiki/spaces/SRE/pages/19297464/So+You+Want+To+Add+A+Linter

- uses: actions/checkout@v2
- uses: hadolint/[email protected]
with:
dockerfile: "cookiecutter-django-ida/\{\{cookiecutter.repo_name\}\}/Dockerfile"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't work, I also tried {{, but that didn't work either:
image

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even if you get that to work, the Dockerfile in question itself requires interpolation and has {{ all over the place that will probably confuse a linter. Perhaps we can instead add the hadolint action to the cookiecutters that have a Dockerfile (xblock and ida) and also run hadolint from the cookiecutter repo's unit tests.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect the YAML parser is complaining about the \{ since { does not require escaping. You say that there's a problem if you just use {{ -- what complains? I'd expect GitHub to only complain if there's a ${{ sequence, but if it doesn't even like {{ then you might have to do something gross like this:

dockerfile: "cookiecutter-django-ida/${{ '{{' }}cookiecutter.repo_name${{ '}}' }}/Dockerfile"

However, I think you'll then just run into hadolint errors.

@adzuci adzuci closed this Jan 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants