software-versions.sh: Look up the package versions in docker images
Determine the docker image names for the software packages and attempt
to download them locally. If that succeeds, create a temporary
container and run it to look up the installed version of the software.
Previously we used a binary metapackage to help determine the source
package name for a given Ubuntu release. The installed binary package
we're looking at in the image is not necessarily the same as the
metapackage, and in some cases its name is versioned like the source
package. So, for example with mysql we have 'mysql-{M.N}' as the source
package, 'mysql-server' as the metapackage used to determine M.N, and
then 'mysql-server-core-{M.N}' as the installed binary package we're
looking up.
shellcheck flagged some lines as needing quoting that actually need to
not have quoting because we are intentionally using that behavior for
dividing up the parts of a version number.
Restore the original quoting and add a shellcheck disable.
This CLI application can be used to print the manifest of an
image:tag. It will eventually be used in our unit tests in order to
obtain the manifest and verify that everything is correct with it.