Conversation
…and fat-container Docker builds
Did we? Will there be support for another kind of native installation? I have no intention to use a dockerized OCR-D. |
We talked about this over and over, and repeatedly asked for commentary – esp. in the Tech Call. I kept this alive for a few years with lots and lots of effort, but not only is my time limited – with slim containers, there is no use for this anymore. Container images are much better anyway. You can still install modules individually from their respective readmes if you want. |
|
So, to illustrate, if you #!/usr/bin/env bash
docker run --rm "${DOCKER_RUN_OPTS[@]}" -v ocrd-models:/usr/local/share/ocrd-resources -v $PWD:/data -u $UID ocrd/tesserocr ocrd-tesserocr-recognize "$@"It will then proceed to build ocrd-all-tool.json and ocrd-all-meta.json from the checked out If passing To just pull (or build) the images, without (re-)installing the executable shell scripts, do Finally, to initialise the named volume To then manage processor resources (list or download), there are now additional delegator shell scripts for every image that just wrap the (We cannot just use Using the processor CLIs is as simple as calling them by name, like in the native installation before, but now these will automatically start the respective container, mount the model volume, mount the current working directory into So what is not possible anymore is using multi-processor tools like |
Since we agreed it is not feasible to continue supporting native installation into a shared venv (along with risk of dependency clashes, necessity to find compromises or sidestep via sub-venv), which will not be needed for the network (WebAPI server-client) installation anyway, this implements the first step: keeping backwards-compatible CLI interfaces, but delegating to Docker images throughout. (The second step will be about replacing or complementing the CLI interfaces with server-client setup, in line with #449.)
ocrd resmgrin each slim imageocrd-all-*.jsontargets