James Kunstle a écrit :
However, different container maintainers include the metadata about
their Dockerfile's in different ways.
Take nginx for example. Its Dockerfile contains both:
NGINX_VERSION=1.12
and
VERSION=0
What would be the correct way to solve this collision for a hypothetical workflow that
you might have?
Are there any ad hoc best-practices w.r.t Dockerfile standards involving specifying the
version and release
number?
Hi James,
As far I can see in the Docker images produced by the Cloud SIG
(
http://fedoraproject.org/wiki/Cloud), it seems to be this rule:
<PKGNAME>_VERSION=<version>
you saw NGINX_VERSION=1.12
I saw MYSQL_VERSION=10.5.9 because I'm using mariadb Docker image.
But personnaly, I think it is not a good idea to do this. It gives a
lot of issue and make it harder to maintain the Dockerfile.
Perhaps it is useful on database softwares, to keep compatibility, but
for something else, I think it's useless. If you specify the version
in the Dockerfile, this info will be obsolete and false by the
time. If you add tests in your Dockerfile to be sure you're installing
this version exactly, the Docker image will fail to build by the
time... then you need to fix the Dockerfile.
So, where do I specify the version of the software (because I need
this information, anyway) ?
I put it in the tag of the image during the build (or after), like
that:
poezio:0.13.1-9
<pkgname>:<pkgversion>-<image_version>
regards,
Casper
--
GnuPG: AE157E0B29F0BEF2 at
keys.openpgp.org
CA Cert:
https://dl.casperlefantom.net/pub/ssl/root.der
Jabber/XMPP Messaging: casper(a)casperlefantom.net