slub / ocrd_controller

Path to network implementation of OCR-D
MIT License
6 stars 3 forks source link

Fix ocrd/all version #11

Closed markusweigelt closed 1 year ago

markusweigelt commented 2 years ago

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

bertsky commented 2 years 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.

bertsky commented 1 year ago

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.

markusweigelt commented 1 year ago

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.

bertsky commented 1 year ago

Yes, that's the way to go!