Testcontainers-java: Checks fail if Docker version contains a non-numeric classifier.

Created on 6 Feb 2019  路  9Comments  路  Source: testcontainers/testcontainers-java

On one of my Linux system the version from docker version is reported as 18.06.0-dev. This causes the version check to fail as it assumes that the version should be purely dots and numbers.

Edit: The correct fix for this should be the following:

  • [ ] Have the ability to turn off the version check (either on it's own or as part of checks.disable=true
  • [ ] Only compare numerical parts of the version and remove and non-numeric classifiers. (For instance this is how Grolifant does version comparisons: https://gitlab.com/ysb33rOrg/grolifant/blob/master/src/main/groovy/org/ysb33r/grolifant/api/Version.groovy#L234)
good first issue resolutioawaiting-release typbug

All 9 comments

Mmm.. no, It seemingly reports the version of the server just as dev. I think this is rather an issue for the specific distribution's package maintainer rather than testcontainers.

What is just sad is that I cannot skip this check by setting checks.disable=true.

Hey Schalk, cool to see you using Testcontainers :slightly_smiling_face:
You are correct, here is the bug and we always check for the version:
https://github.com/testcontainers/testcontainers-java/blob/8acee4d804c125beb3774f509744f31b58ad7fc8/core/src/main/java/org/testcontainers/DockerClientFactory.java#L145

We can solve this by either moving Docker version check into the same condition as the other checks, or by making the version checking more tolerant.

I think just the ability to turn the check off would be good enough. In general I think the version check is important. I have updated the initial description of this issue with clarification as to what needs fixing.

P.S. As the issue that triggered this is with a specific Linux distro I have also raised the appropriate bug with them: https://bugs.mageia.org/show_bug.cgi?id=24321

Yeah, lets go with letting this check be turned off. Docker 1.6.0 is pretty ancient, so as a check it's not _really_ that valuable.

Hello there!
I'm new in contributing, but this issue for me is pretty clear.
Do you mind if I take this issue?

Hey @aiviniog1,
Would be great, thx.

I have create PR with a new setting to disable check Docker version.
Path of the setting will be:checks.docker.disable (by default value is false).

I think I need to update docs, but I can't find appropriate article. Any advice? Or may be I need to create a new one?

Hmm, this page is probably the right one: https://www.testcontainers.org/features/configuration/

However, it already _implies_ that the version check is disabled by checks.docker.disable. So we can probably keep the docs as-is and make the behaviour match what's there more closely.

Thank you!

@rnorth Thank you for your answer. It's stands more clear now. I understand so there don't need additional setting. I have already changed my PR accordingly.

Bottom line: The setting checks.disable turn off the Docker version check.

Was this page helpful?
0 / 5 - 0 ratings