Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cremindes/whalelint

Dockerfile linter written in Go. It provides static analysis for Dockerfiles, identifying common mistakes and promotes best practices.
https://github.com/cremindes/whalelint

container docker docker-container docker-image dockerfile dockerfile-linter dockerhub jetbrains-plugin linter vscode-extension

Last synced: about 1 month ago
JSON representation

Dockerfile linter written in Go. It provides static analysis for Dockerfiles, identifying common mistakes and promotes best practices.

Awesome Lists containing this project

README

        

# WhaleLint

[![made-with-Go](https://img.shields.io/badge/Made%20with-Go-1f425f.svg)](http://golang.org)

> *Disclaimer: this has started out as a pet-project while learning Golang.*

Dockerfile linter written in Go.

It provides static analysis for Dockerfiles, identifying common mistakes and promotes best practices.



## Sample output



## Rules

Each Dockerfile AST element has a corresponding set of rules. Click on the picture for details.



## Development

### Roadmap

| Feature | | Status |
|---|---|---|
| Extendable ruleset| | ![Done](https://img.shields.io/static/v1?label=&message=Done&color=Green) |
| CLI | |![Done](https://img.shields.io/static/v1?label=&message=Done&color=Green) | |
| Configurable Output | | ![Done](https://img.shields.io/static/v1?label=&message=Done&color=Green)
| - JSON | ![Done](https://img.shields.io/static/v1?label=&message=Done&color=Green) |
| - Colored Summary | ![Done](https://img.shields.io/static/v1?label=&message=Done&color=Green) |
| Docker image | | ![Done](https://img.shields.io/static/v1?label=&message=Done&color=Green) |
| Rule pass | | ![NotYetStarted](https://img.shields.io/static/v1?label=&message=NoYetStarted&color=lightgrey) |
| - Per line | ![NotYetStarted](https://img.shields.io/static/v1?label=&message=NoYetStarted&color=lightgrey) |
| - Config file | ![NotYetStarted](https://img.shields.io/static/v1?label=&message=NoYetStarted&color=lightgrey) |
| Config file | | ![NotYetStarted](https://img.shields.io/static/v1?label=&message=NoYetStarted&color=lightgrey) |
| - Rule profiles | ![NotYetStarted](https://img.shields.io/static/v1?label=&message=NoYetStarted&color=lightgrey) |
| IDE plugins/extensions | | ![InProgress](https://img.shields.io/static/v1?label=&message=InProgress&color=blue)
| - VSCode | ![PreviewRelease](https://img.shields.io/static/v1?label=&message=PreviewRelease&color=blue)
| - JetBrains | ![PreviewRelease](https://img.shields.io/static/v1?label=&message=PreviewRelease&color=blue)

### Design Decisions

A collection of documents describing the thought process behind selected design decisions. [Link >](docs/design/readme.md)

### Contribution Guide

[Link > TODO](docs/contribution/readme.md)

## Docker Image

![Docker imaage version](https://img.shields.io/docker/v/cremindes/whalelint)
![DockerHub Downloads](https://img.shields.io/docker/pulls/cremindes/whalelint)
![Docker image size](https://img.shields.io/docker/image-size/cremindes/whalelint)

```bash
docker pull cremindes/whalelint:[tag]
docker run --rm -v $(pwd)/Dockerfile:/Dockerfile cremindes/whalelint:[tag] Dockerfile
```

## Plugins

### JetBrains

![Version](https://img.shields.io/jetbrains/plugin/v/tamas_g_barna.whalelint)
![Downloads](https://img.shields.io/jetbrains/plugin/d/tamas_g_barna.whalelint)



*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.

### VSCode

[![Version](https://vsmarketplacebadge.apphb.com/version/tamasgbarna.whalelint.svg)](https://marketplace.visualstudio.com/items?itemName=tamasgbarna.whalelint)
[![Installs](https://vsmarketplacebadge.apphb.com/installs-short/tamasgbarna.whalelint.svg)](https://marketplace.visualstudio.com/items?itemName=tamasgbarna.whalelint)



## Alternatives

[Alternatives](docs/alternatives/readme.md)