hadolint를 사용하는 새로운 방법 🐳

얼마 전 직장에서 새로운 프로젝트를 시작했고 지속적인 통합을 위해 GitLab CI pipeline을 추가하고 싶었습니다.

Docker 을 사용하면서 우리는 best practices 을 따르고 있는지 확인하기 위해 Dockerfile을 자동으로 린트하고 싶었습니다. 따라서 우리는 다른 프로젝트에서 사용하던 도구를 추가하려고 했습니다: hadolint .

하돌린트란?



hadolint는 더 나은 Docker 이미지를 빌드하는 데 도움이 되는 린터입니다. Dockerfile을 사용하여 50개 이상의 규칙을 확인하고 ShellCheck 으로 Bash 명령의 유효성을 검사할 수도 있습니다. 🐚

GitHub 저장소에서 확인할 수 있습니다an (incomplete) list of implemented rules . DL 접두사가 붙은 규칙은 hadolint에서 가져오고 SC 접두사가 있는 규칙은 ShellCheck에서 가져옵니다.

.gitlab-ci.yml 파일에 추가하는 방법은 무엇입니까?



내가 마지막으로 확인한 이후로 새로운 기능이 추가되었는지 확인하려고 했을 때 유지 관리자와 기여자가 recipe to use in GitLab 다음을 제공하여 도구를 사용하는 새로운 방법을 추가했다는 사실에 매우 놀랐습니다.

# To update hadolint/hadolint version
# https://hub.docker.com/r/hadolint/hadolint/tags?page=1&ordering=last_updated
lint:hadolint:
  image: hadolint/hadolint:v1.19.0-45-gef91156-alpine
  only:
    refs:
      - branches
    variables:
      - $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
  script: hadolint Dockerfile
  stage: tests

GitLab CI에서 사용하기 위해 약간 수정된 레시피



개인적으로 docker run --rm -i hadolint/hadolint < Dockerfile 명령을 실행하는 것보다 이 방법이 더 깔끔하다는 것을 알았으므로 이 새로운 기능을 축하하고 이 멋진 도구를 주변에 공유하기 위해 이 작은 게시물을 작성하기로 결정했습니다. 🥳

lint:hadolint:
  script: docker run --rm -i hadolint/hadolint < Dockerfile
  stage: tests

hadolint를 사용하는 오래된 방법



우리가 사용해야 할 이와 같은 다른 숨겨진 보석을 알고 있습니까? 💎

PS. They even released a Web tool if you want to lint your Dockerfiles in your navigator! 🥰

좋은 웹페이지 즐겨찾기