wgu-opensource / osmt

OSMT is the Open Skills Management Tool
https://osmt.io
Other
44 stars 8 forks source link

Docker version not parsing properly in osmt_cli.sh #458

Closed duckhead closed 1 year ago

duckhead commented 1 year ago

I am running a version of docker from docker.io (the official repository) on my Debian Bookworm laptop.

When I run osmt_cli, I expect it to pass the docker checks, because it is the latest and greatest version:

Server: Engine: Version: 20.10.24+dfsg1 API version: 1.41 (minimum version 1.12) Go version: go1.19.8 Git commit: 5d6db84 Built: Thu May 18 08:38:34 2023 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.20~ds1 GitCommit: 1.6.20~ds1-1+b1 runc: Version: 1.1.5+ds1 GitCommit: 1.1.5+ds1-1+b1 docker-init: Version: 0.19.0 GitCommit:

What happens instead is that I get an error from osmt_cli.sh:

/home/jfrank/osmt/bin/lib/common.sh: line 250: dfsg1: unbound variable

Apparently, it doesn't look like it likes the characters at the end of the version: 20.10.24+dfsg1

I've tried to recreate it in a test case, but haven't been able to do so yet. So, I just turned off the check, but anyone running the offical docker image is going to run into this. So, it's probably work fixing. I'll continue to work on it some, but I wanted to get it documented.

JohnKallies commented 1 year ago

The validation done via shell builtins might be a little too pedantic. There was a slight sensitivity to the Docker version awhile back, but we can relax on this some. Maybe just test that major =< 18, and warn if major >= 17.

duckhead commented 1 year ago

It's not the validation, it's the parsing that's broke, but no problem, I disabled the problematic parsing since what it parses is not used anywhere. The checks it does look appropriate.

duckhead commented 1 year ago

Anyways, I've gotten this fixed by removing the code that parses the patch level (since you validate simply on major/minor versions). This has been folded into my path of misc fixes.