Closed markusweigelt closed 1 year ago
Agreed – but that should already be possible, since Dockerfile
has an ARG VERSION=maximum-git
, and ocrd/all:maximum-git images are also (synonymously) tagged by date, e.g. 2022-07-18
, see https://hub.docker.com/r/ocrd/all/tags.
However, I don't know how to pass dynamic args in the build section of a compose file. We have the same situation in the Manager with KITODO_MQ_CLIENT_VERSION
(which gets defined and defaulted in the Dockerfile, but never overriden).
Also applies to the ocrd/core
tag of the Manager's From stage BTW.
One way out could be to simply use the git tag of /build
in ocrd_controller (ocrd_all), and the ocrd --version
in ocrd_manager (core).
But if we start releasing images under a date or version string, we might quickly run out of our GHCR quota. So perhaps blocking automatic CI builds again would make sense.
I suggest we could build two image versions here:
Once the OCR-D all version of maximum-git
with tag e.g. "experimental, latest-parent, etc.". We then continue to build this version once a week as we do now.
The version of the OCR-D controller that we have tested and is therefore stable, with the tag "latest, stable, fixed etc.". This version use a fix parent image tag set by the GH workflow, e.g. 2022-12-14
, and always builds against this version if it is not changed. We update this OCR-D controller image version when master
changed.
If the current version of the parent is working, we update the workflow with the new parent.
Yes, that's the way to go!
Problem When building the Contoller image, the current "ocrd/all" is always downloaded. So we cannot provide a stable state of the controller in our stack with this agile base. In addition, it is a hindrance to development and demos if the long download is triggered when the entire stack is built and the controller may no longer function afterwards.
Solution The version of ocrd/all should be entered as a fixed value in the build script of the controller and passed as an argument. The current version of ocrd/all can also be used if for example "latest" is set as argument