{"id":15044004,"url":"https://github.com/cremindes/whalelint","last_synced_at":"2025-10-23T18:30:53.101Z","repository":{"id":37820638,"uuid":"321986803","full_name":"CreMindES/whalelint","owner":"CreMindES","description":"Dockerfile linter written in Go. It provides static analysis for Dockerfiles, identifying common mistakes and promotes best practices.","archived":false,"fork":false,"pushed_at":"2023-11-14T18:24:57.000Z","size":1033,"stargazers_count":13,"open_issues_count":29,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T20:29:40.174Z","etag":null,"topics":["container","docker","docker-container","docker-image","dockerfile","dockerfile-linter","dockerhub","jetbrains-plugin","linter","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CreMindES.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-16T13:13:03.000Z","updated_at":"2024-08-08T18:09:29.000Z","dependencies_parsed_at":"2024-06-19T06:18:35.792Z","dependency_job_id":"491ce547-4c12-48ea-8715-66d546eadaba","html_url":"https://github.com/CreMindES/whalelint","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CreMindES%2Fwhalelint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CreMindES%2Fwhalelint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CreMindES%2Fwhalelint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CreMindES%2Fwhalelint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CreMindES","download_url":"https://codeload.github.com/CreMindES/whalelint/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237869265,"owners_count":19379290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["container","docker","docker-container","docker-image","dockerfile","dockerfile-linter","dockerhub","jetbrains-plugin","linter","vscode-extension"],"created_at":"2024-09-24T20:49:56.609Z","updated_at":"2025-10-23T18:30:47.696Z","avatar_url":"https://github.com/CreMindES.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg width=\"22px\" src=\"https://user-images.githubusercontent.com/5306361/110181582-6c807f80-7e0c-11eb-81c8-36d6a9c0db0b.png\"\u003e WhaleLint \u003cimg align=\"right\" style=\"position: relative; top: 10px;\" src=\"https://github.com/cremindes/whalelint/workflows/build/badge.svg\" /\u003e\n\n[![made-with-Go](https://img.shields.io/badge/Made%20with-Go-1f425f.svg)](http://golang.org)\n\n\u003e *Disclaimer: this has started out as a pet-project while learning Golang.*\n\nDockerfile linter written in Go.\n\nIt provides static analysis for Dockerfiles, identifying common mistakes and promotes best practices.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"500px\" src=\"docs/illustration/illustration.svg\"/\u003e \n\u003c/p\u003e\n\n## Sample output\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750px\" src=\"https://user-images.githubusercontent.com/5306361/110198673-775f0280-7e54-11eb-8e4e-ab6350fb4e7d.png\"/\u003e\n\u003c/p\u003e\n\n## Rules\n\nEach Dockerfile AST element has a corresponding set of rules. Click on the picture for details.\n\n\u003cp align=\"center\"\u003e\u003ca href=\"docs/rule/readme.md\"\u003e\n  \u003cimg width=\"500px\" src=\"https://user-images.githubusercontent.com/5306361/110181292-bfa60280-7e0b-11eb-8437-d9ec9c45df62.png\" /\u003e\n\u003c/a/\u003c/p\u003e\n\n## Development\n\n### Roadmap\n\n| Feature |  | Status |\n|---|---|---|\n| Extendable ruleset|  | ![Done](https://img.shields.io/static/v1?label=\u0026message=Done\u0026color=Green) | \n| CLI |  |![Done](https://img.shields.io/static/v1?label=\u0026message=Done\u0026color=Green)  |  |\n| Configurable Output | | ![Done](https://img.shields.io/static/v1?label=\u0026message=Done\u0026color=Green)\n| - JSON | ![Done](https://img.shields.io/static/v1?label=\u0026message=Done\u0026color=Green) |\n| - Colored Summary | ![Done](https://img.shields.io/static/v1?label=\u0026message=Done\u0026color=Green) |\n| Docker image | | ![Done](https://img.shields.io/static/v1?label=\u0026message=Done\u0026color=Green) |\n| Rule pass | | ![NotYetStarted](https://img.shields.io/static/v1?label=\u0026message=NoYetStarted\u0026color=lightgrey) |\n| - Per line | ![NotYetStarted](https://img.shields.io/static/v1?label=\u0026message=NoYetStarted\u0026color=lightgrey) |\n| - Config file | ![NotYetStarted](https://img.shields.io/static/v1?label=\u0026message=NoYetStarted\u0026color=lightgrey) |\n| Config file | | ![NotYetStarted](https://img.shields.io/static/v1?label=\u0026message=NoYetStarted\u0026color=lightgrey) |\n| - Rule profiles | ![NotYetStarted](https://img.shields.io/static/v1?label=\u0026message=NoYetStarted\u0026color=lightgrey) |\n| IDE plugins/extensions | | ![InProgress](https://img.shields.io/static/v1?label=\u0026message=InProgress\u0026color=blue)\n| - VSCode | ![PreviewRelease](https://img.shields.io/static/v1?label=\u0026message=PreviewRelease\u0026color=blue)\n| - JetBrains | ![PreviewRelease](https://img.shields.io/static/v1?label=\u0026message=PreviewRelease\u0026color=blue)\n\n### Design Decisions\n\nA collection of documents describing the thought process behind selected design decisions. [Link \u003e](docs/design/readme.md)\n\n### Contribution Guide\n\n[Link \u003e TODO](docs/contribution/readme.md)\n\n## Docker Image\n\n![Docker imaage version](https://img.shields.io/docker/v/cremindes/whalelint)\n![DockerHub Downloads](https://img.shields.io/docker/pulls/cremindes/whalelint)\n![Docker image size](https://img.shields.io/docker/image-size/cremindes/whalelint)\n\n```bash\ndocker pull cremindes/whalelint:[tag]\ndocker run --rm -v $(pwd)/Dockerfile:/Dockerfile cremindes/whalelint:[tag] Dockerfile\n```\n\n## Plugins\n\n### JetBrains\n\n![Version](https://img.shields.io/jetbrains/plugin/v/tamas_g_barna.whalelint)\n![Downloads](https://img.shields.io/jetbrains/plugin/d/tamas_g_barna.whalelint)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/5306361/110693878-3a926300-81e8-11eb-80c4-7041f2ecf675.gif\"/\u003e\n\u003c/p\u003e\n\n*Note: make sure, to also install the [Docker plugin](https://plugins.jetbrains.com/plugin/7724-docker) in case it's not bundled with the IDE.\n\n### VSCode\n\n[![Version](https://vsmarketplacebadge.apphb.com/version/tamasgbarna.whalelint.svg)](https://marketplace.visualstudio.com/items?itemName=tamasgbarna.whalelint) \n[![Installs](https://vsmarketplacebadge.apphb.com/installs-short/tamasgbarna.whalelint.svg)](https://marketplace.visualstudio.com/items?itemName=tamasgbarna.whalelint)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/5306361/110014611-4c28c600-7d23-11eb-915d-114aca6470b2.gif\"/\u003e\n\u003c/p\u003e\n\n## Alternatives\n\n[Alternatives](docs/alternatives/readme.md)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcremindes%2Fwhalelint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcremindes%2Fwhalelint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcremindes%2Fwhalelint/lists"}