{"id":15676871,"url":"https://github.com/cytopia/docker-file-lint","last_synced_at":"2025-10-18T09:20:13.814Z","repository":{"id":63231690,"uuid":"192216265","full_name":"cytopia/docker-file-lint","owner":"cytopia","description":"Alpine-based Docker image to perform generic file checks on your source code in order to improve consistency within your repository (e.g. for easy usage in CI).","archived":false,"fork":false,"pushed_at":"2024-03-18T10:32:49.000Z","size":90,"stargazers_count":13,"open_issues_count":7,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-31T04:36:18.274Z","etag":null,"topics":["alpine","awesome-ci","ci","continuous-integration","docker","docker-container","docker-image","dockerfile","line-feed","linefeed","lint","linting","multistage","multistage-docker","utf8","white-space","whitespace"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/cytopia.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":"2019-06-16T17:02:09.000Z","updated_at":"2024-04-29T17:42:41.000Z","dependencies_parsed_at":"2024-10-23T13:03:14.030Z","dependency_job_id":null,"html_url":"https://github.com/cytopia/docker-file-lint","commit_stats":{"total_commits":29,"total_committers":3,"mean_commits":9.666666666666666,"dds":0.1724137931034483,"last_synced_commit":"53360f413dcfb3d404141199f3f662ff0ea5a28a"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytopia%2Fdocker-file-lint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytopia%2Fdocker-file-lint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytopia%2Fdocker-file-lint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytopia%2Fdocker-file-lint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cytopia","download_url":"https://codeload.github.com/cytopia/docker-file-lint/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252792729,"owners_count":21805019,"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":["alpine","awesome-ci","ci","continuous-integration","docker","docker-container","docker-image","dockerfile","line-feed","linefeed","lint","linting","multistage","multistage-docker","utf8","white-space","whitespace"],"created_at":"2024-10-03T16:06:44.427Z","updated_at":"2025-10-18T09:20:08.769Z","avatar_url":"https://github.com/cytopia.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker image for `file-lint`\n\n[![Tag](https://img.shields.io/github/tag/cytopia/docker-file-lint.svg)](https://github.com/cytopia/docker-file-lint/releases)\n[![](https://img.shields.io/badge/github-cytopia%2Fdocker--file--lint-red.svg)](https://github.com/cytopia/docker-file-lint \"github.com/cytopia/docker-file-lint\")\n[![License](https://img.shields.io/badge/license-MIT-%233DA639.svg)](https://opensource.org/licenses/MIT)\n\n[![lint](https://github.com/cytopia/docker-file-lint/workflows/lint/badge.svg)](https://github.com/cytopia/docker-file-lint/actions?query=workflow%3Alint)\n[![build](https://github.com/cytopia/docker-file-lint/workflows/build/badge.svg)](https://github.com/cytopia/docker-file-lint/actions?query=workflow%3Abuild)\n[![nightly](https://github.com/cytopia/docker-file-lint/workflows/nightly/badge.svg)](https://github.com/cytopia/docker-file-lint/actions?query=workflow%3Anightly)\n\n\n\u003e #### All [#awesome-ci](https://github.com/topics/awesome-ci) Docker images\n\u003e\n\u003e [ansible-lint][alint-git-lnk] **•**\n\u003e [ansible][ansible-git-lnk] **•**\n\u003e [awesome-ci][aci-git-lnk] **•**\n\u003e [bandit][bandit-git-lnk] **•**\n\u003e [black][black-git-lnk] **•**\n\u003e [checkmake][cm-git-lnk] **•**\n\u003e [eslint][elint-git-lnk] **•**\n\u003e [file-lint][flint-git-lnk] **•**\n\u003e [gofmt][gfmt-git-lnk] **•**\n\u003e [goimports][gimp-git-lnk] **•**\n\u003e [golint][glint-git-lnk] **•**\n\u003e [jsonlint][jlint-git-lnk] **•**\n\u003e [kubeval][kubeval-git-lnk] **•**\n\u003e [linkcheck][linkcheck-git-lnk] **•**\n\u003e [mypy][mypy-git-lnk] **•**\n\u003e [php-cs-fixer][pcsf-git-lnk] **•**\n\u003e [phpcbf][pcbf-git-lnk] **•**\n\u003e [phpcs][pcs-git-lnk] **•**\n\u003e [phplint][plint-git-lnk] **•**\n\u003e [pycodestyle][pycs-git-lnk] **•**\n\u003e [pydocstyle][pyds-git-lnk] **•**\n\u003e [pylint][pylint-git-lnk] **•**\n\u003e [terraform-docs][tfdocs-git-lnk] **•**\n\u003e [terragrunt-fmt][tgfmt-git-lnk] **•**\n\u003e [terragrunt][tg-git-lnk] **•**\n\u003e [yamlfmt][yfmt-git-lnk] **•**\n\u003e [yamllint][ylint-git-lnk]\n\nView **[Dockerfiles](https://github.com/cytopia/docker-file-lint/blob/master/Dockerfiles/)** on GitHub.\n\n\n**Available Architectures:**  `amd64`, `i386`, `arm64`, `arm/v7`, `arm/v6`\n\nTiny Alpine-based Docker image for the very basics of CI against your code files based one [awesome-ci](https://github.com/topics/awesome-ci)\u003csup\u003e[1]\u003c/sup\u003e.\n\n\u003csup\u003e[1] Original project: https://github.com/topics/awesome-ci\u003c/sup\u003e\n\n\n## :whale: Available Docker image versions\n\n[![](https://img.shields.io/docker/pulls/cytopia/file-lint.svg)](https://hub.docker.com/r/cytopia/file-lint)\n[![Docker](https://badgen.net/badge/icon/:latest?icon=docker\u0026label=cytopia/file-lint)](https://hub.docker.com/r/cytopia/file-lint)\n\n#### Rolling releaess\n\nThe following Docker image tags are rolling releases and are built and updated every night.\n\n[![nightly](https://github.com/cytopia/docker-file-lint/workflows/nightly/badge.svg)](https://github.com/cytopia/docker-file-lint/actions?query=workflow%3Anightly)\n\n\n| Docker Tag           | Git Ref   | file-lint    | Flavour | Available Architectures                      |\n|----------------------|-----------|--------------|---------|----------------------------------------------|\n| `latest`             | master    | latest       | default | `amd64`, `i386`, `arm64`, `arm/v7`, `arm/v6` |\n| `alpine`             | master    | latest       | Alpine  | `amd64`, `i386`, `arm64`, `arm/v7`, `arm/v6` |\n\n#### Point in time releases\n\nThe following Docker image tags are built once and can be used for reproducible builds. Its version never changes so you will have to update tags in your pipelines from time to time in order to stay up-to-date.\n\n[![build](https://github.com/cytopia/docker-file-lint/workflows/build/badge.svg)](https://github.com/cytopia/docker-file-lint/actions?query=workflow%3Abuild)\n\n\n| Docker Tag            | Git Ref      | file-lint    | Flavour | Available Architectures                      |\n|-----------------------|--------------|--------------|---------|----------------------------------------------|\n| `latest-\u003ctag\u003e`        | tag: `\u003ctag\u003e` | latest       | default | `amd64`, `i386`, `arm64`, `arm/v7`, `arm/v6` |\n| `alpine-latest-\u003ctag\u003e` | tag: `\u003ctag\u003e` | latest       | Alpine  | `amd64`, `i386`, `arm64`, `arm/v7`, `arm/v6` |\n\n\u003e Where `\u003ctag\u003e` refers to the chosen git tag from this repository.\n\n\n## :star: Features\n\n* dry run (which shows all piped unix command voodoo for learning)\n* project based configuration file (`awesome-ci.conf`)\n* check for empty files\n* check for files with carriage returns (`\\r`)\n* check for files with windows newlines (`\\r\\n`)\n* check for files with nullbyte characters (`\\x00`)\n* check for trailing newlines at eof (exactly one or multiple)\n* check for trailing white space\n* ensure files are utf8 encoded\n* ensure files do not contain utf8 bom (byte order mark: `U+FEFF`)\n* allows for automatic fixing (most commands)\n* allows for find-grained control\n    - check files by specific extension(s) only\n    - check files by specific shebang only\n    - check binary or text-files only\n\n## :wrench: Tools\n| Type | Tool | Fixable | Description |\n|------|------|---------|-------------|\n| File | [file-cr](data/file-cr) | ✓ | Scan files and check if they contain CR (Carriage Return only). |\n| File | [file-crlf](data/file-crlf) | ✓ | Scan files and check if they contain CRLF (Windows Line Feeds). |\n| File | [file-empty](data/file-empty) | | Scan files and check if they are empty (0 bytes). |\n| File | [file-nullbyte](data/file-nullbyte) | ✓ | Scan files and check if they contain a null-byte character (`\\x00)`. |\n| File | [file-trailing-newline](data/file-trailing-newline) | ✓ | Scan files and check if they contain a trailing newline. |\n| File | [file-trailing-single-newline](data/file-trailing-single-newline) | ✓ | Scan files and check if they contain exactly one trailing newline. |\n| File | [file-trailing-space](data/file-trailing-space) | ✓ | Scan files and check if they contain trailing whitespaces. |\n| File | [file-utf8](data/file-utf8) | ✓ | Scan files and check if they have a non UTF-8 encoding. |\n| File | [file-utf8-bom](data/file-utf8-bom) | ✓ | Scan files and check if they contain BOM (Byte Order Mark): `U+FEFF`. |\n| Git  | [git-conflicts](data/git-conflicts) |   | Scan files and check if they contain git conflicts. |\n\n\u003e \u003csub\u003eTools extracted from https://github.com/cytopia/awesome-ci\u003c/sub\u003e\n\n\n\n## :open_file_folder: Docker mounts\n\nThe working directory inside the Docker container is **`/data/`** and should be mounted locally.\n\n\n## :computer: Usage\n\n### General\n```bash\n$ docker run --rm -v $(pwd):/data cytopia/file-lint\n\n################################################################################\n#                              cytopia/file-lint                               #\n#                                 (awesome-ci)                                 #\n################################################################################\n#                                                                              #\n#                                                                              #\n# Usage:                                                                       #\n# -----------------------------------------------------------------------------#\n# docker run --rm cytopia/file-lint --help                                     #\n# docker run --rm cytopia/file-lint \u003ctool\u003e --help                              #\n# docker run --rm cytopia/file-lint \u003ctool\u003e --info                              #\n# docker run --rm cytopia/file-lint \u003ctool\u003e --version                           #\n#                                                                              #\n#                                                                              #\n# Available tools:                                                             #\n# -----------------------------------------------------------------------------#\n# file-empty                    Scans if files are empty                       #\n# file-cr                       Scans if files contain carriage returns (\\r)   #\n# file-crlf                     Scans if files contain win line feeds (\\r\\n)   #\n# file-nullbyte                 Scans if files contain nullbyte chars (\\x00)   #\n# file-trailing-newline         Scans if files contain trailing newline(s)     #\n# file-trailing-single-newline  Scans if files contain single trailing newline #\n# file-trailing-space           Scans if files contain trailing whitespace     #\n# file-utf8                     Scans if files are utf8 encoded                #\n# file-utf8-bom                 Scans if files contain byte order mark         #\n# git-conflicts                 Scans if files contain git conflicts           #\n#                                                                              #\n#                                                                              #\n# Example:                                                                     #\n# -----------------------------------------------------------------------------#\n# docker run --rm -v $(pwd):/data cytopia/file-lint \\                          #\n#     lf-crlf --ignore \".git/,.github/\" --path .                               #\n#                                                                              #\n################################################################################\n```\n\n### Tool usage\nThe following help screen is taken from `file-crlf`. All other tools have the exact same functionality.\n```\n$ docker run --rm cytopia/file-lint file-crlf --help\n\nUsage: file-crlf [--text] [--size] [--shebang \u003cARG\u003e] [--extension \"tpl,htm,html,php,...\"] [--ignore \"dir1,dir2\"] [--config \"conf\"] [--confpre \"FILE_CRLF_\"] [--fix] [--verbose] [--debug] [--dry] [--list] --path \u003cDIR\u003e\n       file-crlf --info\n       file-crlf --help\n       file-crlf --version\n\nScans recursively for files containing CRLF (Windows Line Feeds).\nWill return 1 on occurance, otherwise 0.\n\nRequired arguments:\n\n  --path \u003cARG\u003e       Specify directory where to scan.\n\n\nOptional run arguments:\n  --fix              Fixable :-)\n                     Fix the problems for the specified files.\n                     Note, all other options below also apply\n\n  --text             Limit search to text files only (non-binary).\n                     Can be narrowed further with '--extension'\n\n  --size             Limit search to files which are not empty (bigger than 0 bytes).\n\n  --shebang \u003cARG\u003e    Only find files (shell scripts) with this specific shebang.\n                     It is useful to combine this with --text and --size for faster searches.\n                     Use with --dry to see how this search command is generated.\n                     Example:\n                         --shebang bash\n                         --shebang php\n                         --shebang sh\n\n  --extension \u003cARG\u003e  Only find files matching those extensions.\n                     Comma separated list of file extensions.\n                     Only find files matching those extensions.\n                     Defaults to all files if not specified or empty.\n                     Example:\n                         --extension \"html,php,inc\"\n                         --extension php\n\n  --ignore \u003cARG\u003e     Comma separated list of ignore paths.\n                     Directories must be specified from the starting location of --path.\n                     Example:\n                          ignore 'foor/bar' folder inside '/var/www' path:\n                         --path /var/www --ignore foo/bar\n\n  --config \u003cARG\u003e     Load configuration file.\n                     File must contain the following directives:\n                         FILE_CRLF_EXTENSION=\"\" # comma separated\n                         FILE_CRLF_IGNORE=\"\"    # comma separated\n                         FILE_CRLF_TEXT=0|1     # 0 or 1\n                     Note that cmd arguments take precedence over\n                     config file settings.\n\n  --confpre \u003cARG\u003e    Set custom configuration directive prefix.\n                     Current default ist: 'FILE_CRLF_'.\n                     This is useful, when you want to define different defaults\n                     per check via configuration file.\n\n  --verbose          Be verbose and print commands and files being checked.\n\n\n  --debug            Print system messages.\n\n\nOptional training arguments:\n  --dry              Don't do anything, just display the commands.\n\n  --list             Instead of searching inside the files, just display the filenames\n                     that would be found by --path, --extension and --ignore\n\n\nSystem arguments:\n  --info             Show versions of required commands (useful for bugreports).\n  --help             Show help screen.\n  --version          Show version information.\n\n\nfile-crlf is part of the awesome-ci collection.\nhttps://github.com/cytopia/awesome-ci\n```\n\n### Configuration file\nYou can also add a configuration file named `awesome-ci.conf` to your project to configure it to your likings.\n```bash\n#\n# Awesome-ci configuration file\n#\n# Each tool will have its own config section\n# which all behave in the same way:\n#\n#\n# 1. File extensions\n# ------------------\n# Comma separated list of file extensions\n# to narrow down the files to check.\n#     \u003cTOOL_NAME\u003e_EXTENSION=\"\"\n#     \u003cTOOL_NAME\u003e_EXTENSION=\"tpl,html\"\n#\n# 2. Ignored paths\n# ----------------\n# Comma separated list of file paths\n# to narrow down the files to check.\n# Note that those paths must start at the\n# path where --path starts.\n#     \u003cTOOL_NAME\u003e_IGNORE=\"\"\n#     \u003cTOOL_NAME\u003e_IGNORE=\"tmp/log,tmp/run\"\n#\n# 3. Text files\n# -------------\n# 0 or 1 to specify whether to work on text files\n# only.\n#     \u003cTOOL_NAME\u003e_TEXT=0\n#     \u003cTOOL_NAME\u003e_TEXT=1\n\n\n\n\n#\n# File checkers\n#\n# file-cr\nFILE_CR_EXTENSION=\"\"\nFILE_CR_IGNORE=\".git,*.svn\"\nFILE_CR_TEXT=1\nFILE_CR_SIZE=1\n\n# file-crlf\nFILE_CRLF_EXTENSION=\"\"\nFILE_CRLF_IGNORE=\".git,*.svn\"\nFILE_CRLF_TEXT=1\nFILE_CRLF_SIZE=1\n\n# file-empty\nFILE_EMPTY_EXTENSION=\"\"\nFILE_EMPTY_IGNORE=\".git,*.svn\"\nFILE_EMPTY_TEXT=0\nFILE_EMPTY_SIZE=0\n\n# file-nullbyte\nFILE_NULLBYTE_EXTENSION=\"\"\nFILE_NULLBYTE_IGNORE=\".git,*.svn,*.pyc\"\nFILE_NULLBYTE_TEXT=1\nFILE_NULLBYTE_SIZE=1\n\n# file-trailing-newline\nFILE_TRAILING_NEWLINE_EXTENSION=\"\"\nFILE_TRAILING_NEWLINE_IGNORE=\".git,*.svn\"\nFILE_TRAILING_NEWLINE_TEXT=1\nFILE_TRAILING_NEWLINE_SIZE=1\n\n# file-trailing-single-newline\nFILE_TRAILING_SINGLE_NEWLINE_EXTENSION=\"\"\nFILE_TRAILING_SINGLE_NEWLINE_IGNORE=\".git,*.svn\"\nFILE_TRAILING_SINGLE_NEWLINE_TEXT=1\nFILE_TRAILING_SINGLE_NEWLINE_SIZE=1\n\n# file-trailing-space\nFILE_TRAILING_SPACE_EXTENSION=\"\"\nFILE_TRAILING_SPACE_IGNORE=\".git,*.svn\"\nFILE_TRAILING_SPACE_TEXT=1\nFILE_TRAILING_SPACE_SIZE=1\n\n# file-utf8\nFILE_UTF8_EXTENSION=\"\"\nFILE_UTF8_IGNORE=\".git,*.svn\"\nFILE_UTF8_TEXT=1\nFILE_UTF8_SIZE=1\n\n# file-utf8-bom\nFILE_UTF8_BOM_EXTENSION=\"\"\nFILE_UTF8_BOM_IGNORE=\".git,*.svn\"\nFILE_UTF8_BOM_TEXT=1\nFILE_UTF8_BOM_SIZE=1\n\n# git-conflicts\nGIT_CONFLICTS_EXTENSION=\"\"\nGIT_CONFLICTS_IGNORE=\".git,*.svn\"\nGIT_CONFLICTS_TEXT=1\nGIT_CONFLICTS_SIZE=1\n```\n\n### Example Makefile\n```make\nifneq (,)\n.error This Makefile requires GNU Make.\nendif\n\n.PHONY: lint _lint-cr _lint-crlf _lint-trailing-single-newline _lint-trailing-space _lint-utf8 _lint-utf8-bom _lint-git-conflicts\n\nFL_VERSION      = latest\nFL_IGNORE_PATHS = .git/,.github/\n\nlint:\n\t@$(MAKE) --no-print-directory _lint-cr\n\t@$(MAKE) --no-print-directory _lint-crlf\n\t@$(MAKE) --no-print-directory _lint-trailing-single-newline\n\t@$(MAKE) --no-print-directory _lint-trailing-space\n\t@$(MAKE) --no-print-directory _lint-utf8\n\t@$(MAKE) --no-print-directory _lint-utf8-bom\n    @$(MAKE) --no-print-directory _lint-git-conflicts\n\n_lint-cr:\n\t@docker run --rm -v $(PWD):/data cytopia/file-lint:$(FL_VERSION) file-cr --text --ignore '$(FL_IGNORE_PATHS)' --path .\n\n_lint-crlf:\n\t@docker run --rm -v $(PWD):/data cytopia/file-lint:$(FL_VERSION) file-crlf --text --ignore '$(FL_IGNORE_PATHS)' --path .\n\n_lint-trailing-single-newline:\n\t@docker run --rm -v $(PWD):/data cytopia/file-lint:$(FL_VERSION) file-trailing-single-newline --text --ignore '$(FL_IGNORE_PATHS)' --path .\n\n_lint-trailing-space:\n\t@docker run --rm -v $(PWD):/data cytopia/file-lint:$(FL_VERSION) file-trailing-space --text --ignore '$(FL_IGNORE_PATHS)' --path .\n\n_lint-utf8:\n\t@docker run --rm -v $(PWD):/data cytopia/file-lint:$(FL_VERSION) file-utf8 --text --ignore '$(FL_IGNORE_PATHS)' --path .\n\n_lint-utf8-bom:\n\t@docker run --rm -v $(PWD):/data cytopia/file-lint:$(FL_VERSION) file-utf8-bom --text --ignore '$(FL_IGNORE_PATHS)' --path .\n\n_lint-git-conflicts:\n\t@docker run --rm -v $(PWD):/data cytopia/file-lint:$(FL_VERSION) git-conflicts --text --ignore '$(FL_IGNORE_PATHS)' --path .\n\n```\n\n\n## :arrows_counterclockwise: Related [#awesome-ci](https://github.com/topics/awesome-ci) projects\n\n### Docker images\n\nSave yourself from installing lot's of dependencies and pick a dockerized version of your favourite\nlinter below for reproducible local or remote CI tests:\n\n| GitHub | DockerHub | Type | Description |\n|--------|-----------|------|-------------|\n| [awesome-ci][aci-git-lnk]        | [![aci-hub-img]][aci-hub-lnk]         | Basic      | Tools for git, file and static source code analysis |\n| [file-lint][flint-git-lnk]       | [![flint-hub-img]][flint-hub-lnk]     | Basic      | Baisc source code analysis |\n| [linkcheck][linkcheck-git-lnk]   | [![linkcheck-hub-img]][flint-hub-lnk] | Basic      | Search for URLs in files and validate their HTTP status code |\n| [ansible][ansible-git-lnk]       | [![ansible-hub-img]][ansible-hub-lnk] | Ansible    | Multiple versions and flavours of Ansible |\n| [ansible-lint][alint-git-lnk]    | [![alint-hub-img]][alint-hub-lnk]     | Ansible    | Lint Ansible |\n| [gofmt][gfmt-git-lnk]            | [![gfmt-hub-img]][gfmt-hub-lnk]       | Go         | Format Go source code **\u003csup\u003e[1]\u003c/sup\u003e** |\n| [goimports][gimp-git-lnk]        | [![gimp-hub-img]][gimp-hub-lnk]       | Go         | Format Go source code **\u003csup\u003e[1]\u003c/sup\u003e** |\n| [golint][glint-git-lnk]          | [![glint-hub-img]][glint-hub-lnk]     | Go         | Lint Go code |\n| [eslint][elint-git-lnk]          | [![elint-hub-img]][elint-hub-lnk]     | Javascript | Lint Javascript code |\n| [jsonlint][jlint-git-lnk]        | [![jlint-hub-img]][jlint-hub-lnk]     | JSON       | Lint JSON files **\u003csup\u003e[1]\u003c/sup\u003e** |\n| [kubeval][kubeval-git-lnk]       | [![kubeval-hub-img]][kubeval-hub-lnk] | K8s        | Lint Kubernetes files |\n| [checkmake][cm-git-lnk]          | [![cm-hub-img]][cm-hub-lnk]           | Make       | Lint Makefiles |\n| [phpcbf][pcbf-git-lnk]           | [![pcbf-hub-img]][pcbf-hub-lnk]       | PHP        | PHP Code Beautifier and Fixer |\n| [phpcs][pcs-git-lnk]             | [![pcs-hub-img]][pcs-hub-lnk]         | PHP        | PHP Code Sniffer |\n| [phplint][plint-git-lnk]         | [![plint-hub-img]][plint-hub-lnk]     | PHP        | PHP Code Linter **\u003csup\u003e[1]\u003c/sup\u003e** |\n| [php-cs-fixer][pcsf-git-lnk]     | [![pcsf-hub-img]][pcsf-hub-lnk]       | PHP        | PHP Coding Standards Fixer |\n| [bandit][bandit-git-lnk]         | [![bandit-hub-img]][bandit-hub-lnk]   | Python     | A security linter from PyCQA\n| [black][black-git-lnk]           | [![black-hub-img]][black-hub-lnk]     | Python     | The uncompromising Python code formatter |\n| [mypy][mypy-git-lnk]             | [![mypy-hub-img]][mypy-hub-lnk]       | Python     | Static source code analysis |\n| [pycodestyle][pycs-git-lnk]      | [![pycs-hub-img]][pycs-hub-lnk]       | Python     | Python style guide checker |\n| [pydocstyle][pyds-git-lnk]       | [![pyds-hub-img]][pyds-hub-lnk]       | Python     | Python docstyle checker |\n| [pylint][pylint-git-lnk]         | [![pylint-hub-img]][pylint-hub-lnk]   | Python     | Python source code, bug and quality checker |\n| [terraform-docs][tfdocs-git-lnk] | [![tfdocs-hub-img]][tfdocs-hub-lnk]   | Terraform  | Terraform doc generator (TF 0.12 ready) **\u003csup\u003e[1]\u003c/sup\u003e** |\n| [terragrunt][tg-git-lnk]         | [![tg-hub-img]][tg-hub-lnk]           | Terraform  | Terragrunt and Terraform |\n| [terragrunt-fmt][tgfmt-git-lnk]  | [![tgfmt-hub-img]][tgfmt-hub-lnk]     | Terraform  | `terraform fmt` for Terragrunt files **\u003csup\u003e[1]\u003c/sup\u003e** |\n| [yamlfmt][yfmt-git-lnk]          | [![yfmt-hub-img]][yfmt-hub-lnk]       | Yaml       | Format Yaml files **\u003csup\u003e[1]\u003c/sup\u003e** |\n| [yamllint][ylint-git-lnk]        | [![ylint-hub-img]][ylint-hub-lnk]     | Yaml       | Lint Yaml files |\n\n\u003e **\u003csup\u003e[1]\u003c/sup\u003e** Uses a shell wrapper to add **enhanced functionality** not available by original project.\n\n[aci-git-lnk]: https://github.com/cytopia/awesome-ci\n[aci-hub-img]: https://img.shields.io/docker/pulls/cytopia/awesome-ci.svg\n[aci-hub-lnk]: https://hub.docker.com/r/cytopia/awesome-ci\n\n[flint-git-lnk]: https://github.com/cytopia/docker-file-lint\n[flint-hub-img]: https://img.shields.io/docker/pulls/cytopia/file-lint.svg\n[flint-hub-lnk]: https://hub.docker.com/r/cytopia/file-lint\n\n[linkcheck-git-lnk]: https://github.com/cytopia/docker-linkcheck\n[linkcheck-hub-img]: https://img.shields.io/docker/pulls/cytopia/linkcheck.svg\n[linkcheck-hub-lnk]: https://hub.docker.com/r/cytopia/linkcheck\n\n[jlint-git-lnk]: https://github.com/cytopia/docker-jsonlint\n[jlint-hub-img]: https://img.shields.io/docker/pulls/cytopia/jsonlint.svg\n[jlint-hub-lnk]: https://hub.docker.com/r/cytopia/jsonlint\n\n[ansible-git-lnk]: https://github.com/cytopia/docker-ansible\n[ansible-hub-img]: https://img.shields.io/docker/pulls/cytopia/ansible.svg\n[ansible-hub-lnk]: https://hub.docker.com/r/cytopia/ansible\n\n[alint-git-lnk]: https://github.com/cytopia/docker-ansible-lint\n[alint-hub-img]: https://img.shields.io/docker/pulls/cytopia/ansible-lint.svg\n[alint-hub-lnk]: https://hub.docker.com/r/cytopia/ansible-lint\n\n[kubeval-git-lnk]: https://github.com/cytopia/docker-kubeval\n[kubeval-hub-img]: https://img.shields.io/docker/pulls/cytopia/kubeval.svg\n[kubeval-hub-lnk]: https://hub.docker.com/r/cytopia/kubeval\n\n[gfmt-git-lnk]: https://github.com/cytopia/docker-gofmt\n[gfmt-hub-img]: https://img.shields.io/docker/pulls/cytopia/gofmt.svg\n[gfmt-hub-lnk]: https://hub.docker.com/r/cytopia/gofmt\n\n[gimp-git-lnk]: https://github.com/cytopia/docker-goimports\n[gimp-hub-img]: https://img.shields.io/docker/pulls/cytopia/goimports.svg\n[gimp-hub-lnk]: https://hub.docker.com/r/cytopia/goimports\n\n[glint-git-lnk]: https://github.com/cytopia/docker-golint\n[glint-hub-img]: https://img.shields.io/docker/pulls/cytopia/golint.svg\n[glint-hub-lnk]: https://hub.docker.com/r/cytopia/golint\n\n[elint-git-lnk]: https://github.com/cytopia/docker-eslint\n[elint-hub-img]: https://img.shields.io/docker/pulls/cytopia/eslint.svg\n[elint-hub-lnk]: https://hub.docker.com/r/cytopia/eslint\n\n[cm-git-lnk]: https://github.com/cytopia/docker-checkmake\n[cm-hub-img]: https://img.shields.io/docker/pulls/cytopia/checkmake.svg\n[cm-hub-lnk]: https://hub.docker.com/r/cytopia/checkmake\n\n[pcbf-git-lnk]: https://github.com/cytopia/docker-phpcbf\n[pcbf-hub-img]: https://img.shields.io/docker/pulls/cytopia/phpcbf.svg\n[pcbf-hub-lnk]: https://hub.docker.com/r/cytopia/phpcbf\n\n[pcs-git-lnk]: https://github.com/cytopia/docker-phpcs\n[pcs-hub-img]: https://img.shields.io/docker/pulls/cytopia/phpcs.svg\n[pcs-hub-lnk]: https://hub.docker.com/r/cytopia/phpcs\n\n[plint-git-lnk]: https://github.com/cytopia/docker-phplint\n[plint-hub-img]: https://img.shields.io/docker/pulls/cytopia/phplint.svg\n[plint-hub-lnk]: https://hub.docker.com/r/cytopia/phplint\n\n[pcsf-git-lnk]: https://github.com/cytopia/docker-php-cs-fixer\n[pcsf-hub-img]: https://img.shields.io/docker/pulls/cytopia/php-cs-fixer.svg\n[pcsf-hub-lnk]: https://hub.docker.com/r/cytopia/php-cs-fixer\n\n[bandit-git-lnk]: https://github.com/cytopia/docker-bandit\n[bandit-hub-img]: https://img.shields.io/docker/pulls/cytopia/bandit.svg\n[bandit-hub-lnk]: https://hub.docker.com/r/cytopia/bandit\n\n[black-git-lnk]: https://github.com/cytopia/docker-black\n[black-hub-img]: https://img.shields.io/docker/pulls/cytopia/black.svg\n[black-hub-lnk]: https://hub.docker.com/r/cytopia/black\n\n[mypy-git-lnk]: https://github.com/cytopia/docker-mypy\n[mypy-hub-img]: https://img.shields.io/docker/pulls/cytopia/mypy.svg\n[mypy-hub-lnk]: https://hub.docker.com/r/cytopia/mypy\n\n[pycs-git-lnk]: https://github.com/cytopia/docker-pycodestyle\n[pycs-hub-img]: https://img.shields.io/docker/pulls/cytopia/pycodestyle.svg\n[pycs-hub-lnk]: https://hub.docker.com/r/cytopia/pycodestyle\n\n[pyds-git-lnk]: https://github.com/cytopia/docker-pydocstyle\n[pyds-hub-img]: https://img.shields.io/docker/pulls/cytopia/pydocstyle.svg\n[pyds-hub-lnk]: https://hub.docker.com/r/cytopia/pydocstyle\n\n[pylint-git-lnk]: https://github.com/cytopia/docker-pylint\n[pylint-hub-img]: https://img.shields.io/docker/pulls/cytopia/pylint.svg\n[pylint-hub-lnk]: https://hub.docker.com/r/cytopia/pylint\n\n[tfdocs-git-lnk]: https://github.com/cytopia/docker-terraform-docs\n[tfdocs-hub-img]: https://img.shields.io/docker/pulls/cytopia/terraform-docs.svg\n[tfdocs-hub-lnk]: https://hub.docker.com/r/cytopia/terraform-docs\n\n[tg-git-lnk]: https://github.com/cytopia/docker-terragrunt\n[tg-hub-img]: https://img.shields.io/docker/pulls/cytopia/terragrunt.svg\n[tg-hub-lnk]: https://hub.docker.com/r/cytopia/terragrunt\n\n[tgfmt-git-lnk]: https://github.com/cytopia/docker-terragrunt-fmt\n[tgfmt-hub-img]: https://img.shields.io/docker/pulls/cytopia/terragrunt-fmt.svg\n[tgfmt-hub-lnk]: https://hub.docker.com/r/cytopia/terragrunt-fmt\n\n[yfmt-git-lnk]: https://github.com/cytopia/docker-yamlfmt\n[yfmt-hub-img]: https://img.shields.io/docker/pulls/cytopia/yamlfmt.svg\n[yfmt-hub-lnk]: https://hub.docker.com/r/cytopia/yamlfmt\n\n[ylint-git-lnk]: https://github.com/cytopia/docker-yamllint\n[ylint-hub-img]: https://img.shields.io/docker/pulls/cytopia/yamllint.svg\n[ylint-hub-lnk]: https://hub.docker.com/r/cytopia/yamllint\n\n\n### Makefiles\n\nVisit **[cytopia/makefiles](https://github.com/cytopia/makefiles)** for dependency-less, seamless project integration and minimum required best-practice code linting for CI.\nThe provided Makefiles will only require GNU Make and Docker itself removing the need to install anything else.\n\n\n## :page_facing_up: License\n\n\n**[MIT License](LICENSE)**\n\nCopyright (c) 2019 [cytopia](https://github.com/cytopia)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcytopia%2Fdocker-file-lint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcytopia%2Fdocker-file-lint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcytopia%2Fdocker-file-lint/lists"}