# Docker

## Supported versions <a href="#suoported-versions" id="suoported-versions"></a>

The level of support for a language is defined as follows:

* Fully supported: Analysis will complete. All the language features are understood and examined.
* Supported: Most language features are understood and examined but the version includes unsupported features. Analysis might break or provide incomplete results.

Versions 1.0 to 1.6 are supported.

## Language-specific properties <a href="#language-specific-properties" id="language-specific-properties"></a>

Discover and update the Docker [analysis-parameters](https://docs.sonarsource.com/sonarqube-community-build/analyzing-source-code/analysis-parameters "mention") in **Administration** > **Configuration** > **General Settings** > **Languages** > **Docker**

## Dockerfiles <a href="#dockerfiles" id="dockerfiles"></a>

**No NoSonar Support:**

Trailing comments are not permitted in Dockerfiles. For this reason, our Dockerfile parser does not support NOSONAR comments to suppress issues. Issues and hotspots must be reviewed in the UI.

**Missing Uniform Filename Convention:**

Dockerfiles can have any name and do not need a file extension. For this reason, it is difficult for the scanner and the analyzer to recognize all Dockerfiles.

By default, all files named `Dockerfile`, `Dockerfile.*`, or `*.dockerfile` are scanned by the Docker analyzer.

## Scanning files with your custom filename patterns <a href="#scanning-files-with-your-custom-filename-patterns" id="scanning-files-with-your-custom-filename-patterns"></a>

To associate additional files to the Docker Language, you can provide a custom list of patterns via the `sonar.docker.file.patterns` property which is located in the language-specific properties.

Adding a pattern to `sonar.docker.file.patterns` should be considered carefully, as each file can be assigned to only one language.

For example, adding the pattern `dockerfile.*` will create a conflict with the Java analyzer if a file named `dockerfile.java` exists. This will result in a non-functional analysis.

By default, the scanner still analyzes files with the `dockerfile.*` pattern but does not assign them to the Docker language to prevent having one file with multiple languages.

Patterns that could result in a possible language conflict can be specified via the scanner property `sonar.lang.patterns.docker` property. Files that are affected by this are analyzed by the scanner but not assigned to the Docker language.

## Related pages <a href="#related-pages" id="related-pages"></a>

* [introduction](https://docs.sonarsource.com/sonarqube-community-build/project-administration/adjusting-analysis/setting-analysis-scope/introduction "mention")
* [defining-matching-patterns](https://docs.sonarsource.com/sonarqube-community-build/project-administration/adjusting-analysis/setting-analysis-scope/defining-matching-patterns "mention")
* [external-analyzer-reports](https://docs.sonarsource.com/sonarqube-community-build/analyzing-source-code/importing-external-issues/external-analyzer-reports "mention")
