Code Monkey home page Code Monkey logo

ocrd_controller's Introduction

OCR-D Controller

Path to network implementation of OCR-D

  1. In the simplest (and current) form, the controller will be a SSH login server for a full command-line OCR-D installation. Files must be mounted locally (if they are network shares, this must be done on the host side running the container).
  2. Next, the SSH server can also dynamically receive and send data.
  3. The first true network implementation will offer an HTTP interface for processing (like the workflow server).
  4. From there, the actual processing could be further delegated into different processing servers.
  5. A more powerful workflow engine would then offer instantiating different workflows, and monitoring jobs.
  6. In the final form, the controller will implement (most parts of) the OCR-D Web API.

Usage

Building

Build or pull the Docker image:

make build # or docker pull ghcr.io/slub/ocrd_controller

Starting and mounting

Then run the container – providing host-side directories for the volumes …

  • DATA: directory for data processing (including images or existing workspaces),
    defaults to current working directory
  • MODELS: directory for persistent storage of processor resource files,
    defaults to ~/.local/share; models will be under ./ocrd-resources/*
  • CONFIG: directory for persistent storage of processor resource list,
    defaults to ~/.config; file will be under ./ocrd/resources.yml

… but also a file KEYS with public key credentials for log-in to the controller, and (optionally) some environment variables

  • WORKERS: number of parallel jobs (i.e. concurrent login sessions for ocrd) (should be set to match the available computing resources)
  • UID: numerical user identifier to be used by programs in the container
    (will affect the files modified/created); defaults to current user
  • GID: numerical group identifier to be used by programs in the container
    (will affect the files modified/created); defaults to current group
  • UMASK: numerical user mask to be used by programs in the container
    (will affect the files modified/created); defaults to 0002
  • PORT: numerical TCP port to expose the SSH server on the host side
    defaults to 8022 (for non-priviledged access)
  • NETWORK name of the Docker network to use
    defaults to bridge (the default Docker network)

… thus, for example:

make run DATA=/mnt/workspaces MODELS=~/.local/share KEYS=~/.ssh/id_rsa.pub PORT=8022 WORKERS=3

General management

Then you can log in as user ocrd from remote (but let's use controller in the following – without loss of generality):

ssh -p 8022 ocrd@controller bash -i

Unless you already have the data in workspaces, you need to create workspaces prior to processing. For example:

ssh -p 8022 ocrd@controller "ocrd-import -P some-document"

For actual processing, you will first need to download some models into your MODELS volume:

ssh -p 8022 ocrd@controller "ocrd resmgr download ocrd-tesserocr-recognize *"

Processing

Subsequently, you can use these models on your DATA files:

ssh -p 8022 ocrd@controller "ocrd process -m some-document/mets.xml 'tesserocr-recognize -P segmentation_level region -P model Fraktur'"
# or equivalently:
ssh -p 8022 ocrd@controller "ocrd-tesserocr-recognize -m some-document/mets.xml -P segmentation_level region -P model Fraktur"

Data transfer

If your data files cannot be directly mounted on the host (not even as a network share), then you can use rsync, scp or sftp to transfer them to the server:

rsync --port 8022 -av some-directory ocrd@controller:/data
scp -P 8022 -r some-directory ocrd@controller:/data
echo put some-directory /data | sftp -P 8022 ocrd@controller

Analogously, to transfer the results back:

rsync --port 8022 -av ocrd@controller:/data/some-directory .
scp -P 8022 -r ocrd@controller:/data/some-directory .
echo get /data/some-directory | sftp -P 8022 ocrd@controller

Parallel options

For parallel processing, you can either

  • run multiple processes on a single controller by
    • logging in multiple times, or
    • issuing parallel commands –
      • via basic shell scripting
      • via ocrd-make calls
  • run processes on multiple controllers.

Note: internally, WORKERS is implemented as a (GNU parallel-based) semaphore wrapping the SSH sessions inside blocking sem --fg calls within .ssh/rc. Thus, commands will get queued but not processed until a 'worker' is free.

Logging

All logs are accumulated on standard output, which can be inspected via Docker:

docker logs ocrd_controller

See also

Maintainer

If you have any questions or encounter any problems, please do not hesitate to contact me.

ocrd_controller's People

Contributors

bertsky avatar markusweigelt avatar stweil avatar svenmarcus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

svenmarcus stweil

ocrd_controller's Issues

Changing default base version?

Currently the default ocrd/all base version is maximum-git. Should we change this version to maximum-cuda-git

ARG VERSION=maximum-git

Is it necessary for us to use the -git version? According to the Dockerfile, I don't see any need for it, and I would change the default version to maximum-cuda.

Problem while ocrd import with parent stage

2024-02-23T17:11:59.485877804Z # ocrd-controller:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11
2024-02-23T17:11:59.527277263Z # ocrd-controller:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11
2024-02-23T17:11:59.557043131Z # ocrd-controller:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11
2024-02-23T17:11:59.574767342Z # ocrd-controller:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11
2024-02-23T17:11:59.608877392Z # ocrd-controller:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11
2024-02-23T17:11:59.861086654Z  * Starting enhanced syslogd rsyslogd       �[80G 
�[74G[ OK ]
2024-02-23T17:11:59.922960890Z  * Starting OpenBSD Secure Shell server sshd       �[80G 
�[74G[ OK ]
2024-02-23T17:12:01.927283612Z Feb 23 17:12:00 ocrd-manager rsyslogd: rsyslogd's groupid changed to 106
2024-02-23T17:12:01.927332732Z Feb 23 17:12:00 ocrd-manager rsyslogd: rsyslogd's userid changed to 105
2024-02-23T17:12:01.927337851Z Feb 23 17:12:00 ocrd-manager rsyslogd: [origin software="rsyslogd" swVersion="8.2001.0" x-pid="41" x-info="https://www.rsyslog.com"] start
2024-02-23T17:12:42.931658761Z Feb 23 17:12:42 ocrd-manager process_images.sh: ocr_init initialize variables and directory structure
2024-02-23T17:12:42.931687958Z Feb 23 17:12:42 ocrd-manager process_images.sh: running with --proc-id testdata-kitodo --task-id 1 /data/testdata-kitodo CONTROLLER=ocrd-controller:22 ACTIVEMQ=kitodo-mq:61616
2024-02-23T17:12:42.931693640Z Feb 23 17:12:42 ocrd-manager process_images.sh: using workflow '/workflows/ocr-workflow-default.sh':
2024-02-23T17:12:42.931697470Z Feb 23 17:12:42 ocrd-manager process_images.sh: "tesserocr-recognize -P segmentation_level region -P model frak2021 -I OCR-D-IMG -O OCR-D-OCR" "fileformat-transform -P from-to \"page alto\" -P script-args \"--no-check-border --dummy-word\" -I OCR-D-OCR -O FULLTEXT" 
2024-02-23T17:12:42.931702091Z Feb 23 17:12:42 ocrd-manager process_images.sh: {
2024-02-23T17:12:42.931705277Z Feb 23 17:12:42 ocrd-manager process_images.sh:   acknowledged: true,
2024-02-23T17:12:42.931708584Z Feb 23 17:12:42 ocrd-manager process_images.sh:   insertedId: ObjectId("65d8d20aa1d63d842e4cd3bb")
2024-02-23T17:12:42.931711992Z Feb 23 17:12:42 ocrd-manager process_images.sh: }
2024-02-23T17:12:42.931714911Z Feb 23 17:12:42 ocrd-manager process_images.sh: ocr_exit in async mode - immediate termination of the script
2024-02-23T17:12:42.931718062Z Feb 23 17:12:42 ocrd-manager process_images.sh: '/data/testdata-kitodo/images' -> 'ocr-d//data/testdata-kitodo/images'
2024-02-23T17:12:42.931721547Z Feb 23 17:12:42 ocrd-manager process_images.sh: '/data/testdata-kitodo/images/00000009.tif.original.jpg' -> 'ocr-d//data/testdata-kitodo/images/00000009.tif.original.jpg'
2024-02-23T17:12:42.931724963Z Feb 23 17:12:42 ocrd-manager process_images.sh: '/data/testdata-kitodo/images/00000010.tif.original.jpg' -> 'ocr-d//data/testdata-kitodo/images/00000010.tif.original.jpg'
2024-02-23T17:12:42.931728330Z Feb 23 17:12:42 ocrd-manager process_images.sh: '/data/testdata-kitodo/images/00000011.tif.original.jpg' -> 'ocr-d//data/testdata-kitodo/images/00000011.tif.original.jpg'
2024-02-23T17:12:42.931748705Z Feb 23 17:12:42 ocrd-manager process_images.sh: '/data/testdata-kitodo/images/00000012.tif.original.jpg' -> 'ocr-d//data/testdata-kitodo/images/00000012.tif.original.jpg'
2024-02-23T17:12:42.931752960Z Feb 23 17:12:42 ocrd-manager process_images.sh: '/data/testdata-kitodo/images/00000013.tif.original.jpg' -> 'ocr-d//data/testdata-kitodo/images/00000013.tif.original.jpg'
2024-02-23T17:12:42.931757638Z Feb 23 17:12:42 ocrd-manager process_images.sh: '/data/testdata-kitodo/images/00000014.tif.original.jpg' -> 'ocr-d//data/testdata-kitodo/images/00000014.tif.original.jpg'
2024-02-23T17:12:43.931749676Z Feb 23 17:12:43 ocrd-manager process_images.sh: sending incremental file list
2024-02-23T17:12:43.931772295Z Feb 23 17:12:43 ocrd-manager process_images.sh: created directory /data/KitodoJob_91_testdata-kitodo
2024-02-23T17:12:43.931776007Z Feb 23 17:12:43 ocrd-manager process_images.sh: ./
2024-02-23T17:12:43.931778915Z Feb 23 17:12:43 ocrd-manager process_images.sh: ocrd.log
2024-02-23T17:12:43.931781509Z Feb 23 17:12:43 ocrd-manager process_images.sh: images/
2024-02-23T17:12:43.931784407Z Feb 23 17:12:43 ocrd-manager process_images.sh: images/00000009.tif.original.jpg
2024-02-23T17:12:43.931786999Z Feb 23 17:12:43 ocrd-manager process_images.sh: images/00000010.tif.original.jpg
2024-02-23T17:12:43.931789452Z Feb 23 17:12:43 ocrd-manager process_images.sh: images/00000011.tif.original.jpg
2024-02-23T17:12:43.931791830Z Feb 23 17:12:43 ocrd-manager process_images.sh: images/00000012.tif.original.jpg
2024-02-23T17:12:43.931794341Z Feb 23 17:12:43 ocrd-manager process_images.sh: images/00000013.tif.original.jpg
2024-02-23T17:12:43.931796792Z Feb 23 17:12:43 ocrd-manager process_images.sh: images/00000014.tif.original.jpg
2024-02-23T17:12:43.931799163Z Feb 23 17:12:43 ocrd-manager process_images.sh: 
2024-02-23T17:12:43.931801563Z Feb 23 17:12:43 ocrd-manager process_images.sh: sent 2,485,620 bytes  received 221 bytes  1,657,227.33 bytes/sec
2024-02-23T17:12:43.931804089Z Feb 23 17:12:43 ocrd-manager process_images.sh: total size is 2,484,374  speedup is 1.00
2024-02-23T17:12:43.931806624Z Feb 23 17:12:43 ocrd-manager process_images.sh: WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
2024-02-23T17:12:43.931809302Z Feb 23 17:12:43 ocrd-manager process_images.sh: 2024-02-23 17:12:43 INFO  KitodoActiveMQClient:76 - Sending of message for taskId='1' was successful
2024-02-23T17:12:43.931811868Z Feb 23 17:12:43 2024-02-23 17: 12:43 INFO  KitodoActiveMQClient:76 - Sending of message for taskId='1' was successful
2024-02-23T17:12:43.931814423Z Feb 23 17:12:43 ocrd-manager process_images.sh: execute 3 commands via SSH by the controller
2024-02-23T17:12:44.931855609Z Feb 23 17:12:44 ocrd-manager process_images.sh: set -Ee#015
2024-02-23T17:12:44.931881209Z Feb 23 17:12:44 ocrd-manager process_images.sh: cd 'KitodoJob_91_testdata-kitodo'#015
2024-02-23T17:12:44.931886180Z Feb 23 17:12:44 ocrd-manager process_images.sh: echo $$ > ocrd.pid#015
2024-02-23T17:12:44.931889606Z Feb 23 17:12:44 ocrd-manager process_images.sh: if test -f mets.xml; then OV=--overwrite; else OV=; ocrd-import -j 1 -i; fi#015
2024-02-23T17:12:44.931905620Z Feb 23 17:12:44 ocrd-manager process_images.sh: ocrd validate tasks $OV --workspace . "tesserocr-recognize -P segmentation_level region -P model frak2021 -I OCR-D-IMG -O OCR-D-OCR" "fileformat-transform -P from-to \"page alto\" -P script-args \"--no-check-border --dummy-word\" -I OCR-D-OCR -O FULLTEXT" #015
2024-02-23T17:12:44.931909600Z Feb 23 17:12:44 ocrd-manager process_images.sh: ocrd process $OV "tesserocr-recognize -P segmentation_level region -P model frak2021 -I OCR-D-IMG -O OCR-D-OCR" "fileformat-transform -P from-to \"page alto\" -P script-args \"--no-check-border --dummy-word\" -I OCR-D-OCR -O FULLTEXT" #015
2024-02-23T17:12:44.931912684Z Feb 23 17:12:44 ocrd-manager process_images.sh: /data$ set -Ee#015
2024-02-23T17:12:44.931915066Z Feb 23 17:12:44 ocrd-manager process_images.sh: /data$ cd 'KitodoJob_91_testdata-kitodo'#015
2024-02-23T17:12:44.931917346Z Feb 23 17:12:44 ocrd-manager process_images.sh: /data/KitodoJob_91_testdata-kitodo$ echo $$ > ocrd.pid#015
2024-02-23T17:12:44.931919862Z Feb 23 17:12:44 ocrd-manager process_images.sh: /data/KitodoJob_91_testdata-kitodo$ #015<n OV=--overwrite; else OV=; ocrd-import -j 1 -i; fi#015
2024-02-23T17:12:47.932406598Z Feb 23 17:12:47 ocrd-manager process_images.sh: 17:12:47.241 INFO ocrd.resolver.workspace_from_nothing - Writing METS to /data/KitodoJob_91_testdata-kitodo/mets.xml#015
2024-02-23T17:12:47.932428400Z Feb 23 17:12:47 ocrd-manager process_images.sh: /data/KitodoJob_91_testdata-kitodo#015
2024-02-23T17:12:49.932654074Z Feb 23 17:12:48 ocrd-manager process_images.sh: Traceback (most recent call last):#015
2024-02-23T17:12:49.932683532Z Feb 23 17:12:48 ocrd-manager process_images.sh:   File "/usr/local/bin/ocrd", line 8, in <module>#015
2024-02-23T17:12:49.932687943Z Feb 23 17:12:48 ocrd-manager process_images.sh:     sys.exit(cli())#015
2024-02-23T17:12:49.932690835Z Feb 23 17:12:48 ocrd-manager process_images.sh:   File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1157, in __call__#015
2024-02-23T17:12:49.932693810Z Feb 23 17:12:48 ocrd-manager process_images.sh:     return self.main(*args, **kwargs)#015
2024-02-23T17:12:49.932696434Z Feb 23 17:12:48 ocrd-manager process_images.sh:   File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1078, in main#015
2024-02-23T17:12:49.932699308Z Feb 23 17:12:48 ocrd-manager process_images.sh:     rv = self.invoke(ctx)#015
2024-02-23T17:12:49.932701705Z Feb 23 17:12:48 ocrd-manager process_images.sh:   File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1688, in invoke#015
2024-02-23T17:12:49.932704398Z Feb 23 17:12:48 ocrd-manager process_images.sh:     return _process_result(sub_ctx.command.invoke(sub_ctx))#015
2024-02-23T17:12:49.932706839Z Feb 23 17:12:48 ocrd-manager process_images.sh:   File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1688, in invoke#015
2024-02-23T17:12:49.932709546Z Feb 23 17:12:48 ocrd-manager process_images.sh:     return _process_result(sub_ctx.command.invoke(sub_ctx))#015
2024-02-23T17:12:49.932712114Z Feb 23 17:12:48 ocrd-manager process_images.sh:   File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1434, in invoke#015
2024-02-23T17:12:49.932727189Z Feb 23 17:12:48 ocrd-manager process_images.sh:     return ctx.invoke(self.callback, **ctx.params)#015
2024-02-23T17:12:49.932730349Z Feb 23 17:12:48 ocrd-manager process_images.sh:   File "/usr/local/lib/python3.8/site-packages/click/core.py", line 783, in invoke#015
2024-02-23T17:12:49.932733035Z Feb 23 17:12:48 ocrd-manager process_images.sh:     return __callback(*args, **kwargs)#015
2024-02-23T17:12:49.932735526Z Feb 23 17:12:48 ocrd-manager process_images.sh:   File "/usr/local/lib/python3.8/site-packages/click/decorators.py", line 92, in new_func#015
2024-02-23T17:12:49.932738530Z Feb 23 17:12:48 ocrd-manager process_images.sh:     return ctx.invoke(f, obj, *args, **kwargs)#015
2024-02-23T17:12:49.932742360Z Feb 23 17:12:48 ocrd-manager process_images.sh:   File "/usr/local/lib/python3.8/site-packages/click/core.py", line 783, in invoke#015
2024-02-23T17:12:49.932745175Z Feb 23 17:12:48 ocrd-manager process_images.sh:     return __callback(*args, **kwargs)#015
2024-02-23T17:12:49.932748117Z Feb 23 17:12:48 ocrd-manager process_images.sh:   File "/usr/local/lib/python3.8/site-packages/ocrd/cli/workspace.py", line 484, in workspace_find#015
2024-02-23T17:12:49.932750853Z Feb 23 17:12:48 ocrd-manager process_images.sh:     pages = workspace.mets.get_physical_pages(for_fileIds=fileIds)#015
2024-02-23T17:12:49.932753401Z Feb 23 17:12:48 ocrd-manager process_images.sh:   File "/usr/local/lib/python3.8/site-packages/ocrd_models/ocrd_mets.py", line 696, in get_physical_pages#015
2024-02-23T17:12:49.932756084Z Feb 23 17:12:48 ocrd-manager process_images.sh:     assert for_fileIds # at this point we know for_fileIds is set, assert to convince pyright#015
2024-02-23T17:12:49.932758602Z Feb 23 17:12:48 ocrd-manager process_images.sh: AssertionError#015
2024-02-23T17:12:49.932761006Z Feb 23 17:12:49 ocrd-manager process_images.sh: Connection to ocrd-controller closed.#015
2024-02-23T17:12:49.932763491Z Feb 23 17:12:49 ocrd-manager process_images.sh: terminating with error $?=129 from ssh -tt -p "${CONTROLLERPORT}" ocrd@${CONTROLLERHOST} 2>&1 on line 138 /usr/bin/ocrd_lib.sh
2024-02-23T17:12:49.932766434Z Feb 23 17:12:49 ocrd-manager process_images.sh: WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
2024-02-23T17:12:49.932768992Z Feb 23 17:12:49 ocrd-manager process_images.sh: 2024-02-23 17:12:49 INFO  KitodoActiveMQClient:76 - Sending of message for taskId='1' was successful
2024-02-23T17:12:49.932771625Z Feb 23 17:12:49 2024-02-23 17: 12:49 INFO  KitodoActiveMQClient:76 - Sending of message for taskId='1' was successful
2024-02-23T17:12:50.933192826Z Feb 23 17:12:50 ocrd-manager process_images.sh: {
2024-02-23T17:12:50.933267048Z Feb 23 17:12:50 ocrd-manager process_images.sh:   _id: ObjectId("65d8d20aa1d63d842e4cd3bb"),
2024-02-23T17:12:50.933287308Z Feb 23 17:12:50 ocrd-manager process_images.sh:   pid: 91,
2024-02-23T17:12:50.933300746Z Feb 23 17:12:50 ocrd-manager process_images.sh:   time_created: ISODate("2024-02-23T17:12:42.000Z"),
2024-02-23T17:12:50.933362766Z Feb 23 17:12:50 ocrd-manager process_images.sh:   process_id: 'testdata-kitodo',
2024-02-23T17:12:50.933378095Z Feb 23 17:12:50 ocrd-manager process_images.sh:   task_id: '1',
2024-02-23T17:12:50.933392016Z Feb 23 17:12:50 ocrd-manager process_images.sh:   process_dir: '/data/testdata-kitodo',
2024-02-23T17:12:50.933406321Z Feb 23 17:12:50 ocrd-manager process_images.sh:   workdir: 'ocr-d//data/testdata-kitodo',
2024-02-23T17:12:50.933418506Z Feb 23 17:12:50 ocrd-manager process_images.sh:   remotedir: 'KitodoJob_91_testdata-kitodo',
2024-02-23T17:12:50.933431287Z Feb 23 17:12:50 ocrd-manager process_images.sh:   workflow_file: '/workflows/ocr-workflow-default.sh',
2024-02-23T17:12:50.933443297Z Feb 23 17:12:50 ocrd-manager process_images.sh:   controller_address: 'ocrd-controller:22'
2024-02-23T17:12:50.933454902Z Feb 23 17:12:50 ocrd-manager process_images.sh: }
2024-02-23T17:12:50.933466197Z Feb 23 17:12:50 ocrd-manager process_images.sh: null

Default env var in dockerfile and document necessary env vars

Atm necessary env (UID, GID, UMASK) variables are only documented in the make file.
Necessary variables should be documented in readme too.

Besides this, in my opinion the image should be able to be started without env with the default values of the dockerfile.

Problem while building image

 => ERROR [22/33] RUN for venv in /usr/local/sub-venv/*; do . $venv/bin/activate && make -C core install PIP_INSTALL="pip install -e"; done                                                                                             0.6s
------
 > [22/33] RUN for venv in /usr/local/sub-venv/*; do . $venv/bin/activate && make -C core install PIP_INSTALL="pip install -e"; done:
#27 0.472 /bin/sh: 1: .: Can't open /usr/local/sub-venv/*/bin/activate
------
executor failed running [/bin/sh -c for venv in /usr/local/sub-venv/*; do . $venv/bin/activate && make -C core install PIP_INSTALL="pip install -e"; done]: exit code: 2

Fix ocrd/all version

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

Python problem when build controller "Can't open /usr/sub-venv/*/bin/activate"

I run into following problem when i build the ocrd controller submodule,

 => CACHED [bertsky/ocrd_controller:latest  2/29] RUN apt-get update &&     apt-get install -y apt-utils wget git  0.0s
 => CACHED [bertsky/ocrd_controller:latest  3/29] RUN ssh-keygen -A                                                0.0s
 => CACHED [bertsky/ocrd_controller:latest  4/29] RUN mkdir /run/sshd /.ssh                                        0.0s
 => CACHED [bertsky/ocrd_controller:latest  5/29] RUN echo Banner none >> /etc/ssh/sshd_config                     0.0s
 => CACHED [bertsky/ocrd_controller:latest  6/29] RUN echo PrintMotd no >> /etc/ssh/sshd_config                    0.0s
 => CACHED [bertsky/ocrd_controller:latest  7/29] RUN echo PermitUserEnvironment yes >> /etc/ssh/sshd_config       0.0s
 => CACHED [bertsky/ocrd_controller:latest  8/29] RUN echo PermitUserRC yes >> /etc/ssh/sshd_config                0.0s
 => CACHED [bertsky/ocrd_controller:latest  9/29] RUN echo X11Forwarding no >> /etc/ssh/sshd_config                0.0s
 => CACHED [bertsky/ocrd_controller:latest 10/29] RUN echo AllowUsers ocrd >> /etc/ssh/sshd_config                 0.0s
 => CACHED [bertsky/ocrd_controller:latest 11/29] RUN echo "cd /data" >> /etc/profile                              0.0s
 => CACHED [bertsky/ocrd_controller:latest 12/29] RUN /usr/sbin/sshd -t                                            0.0s
 => CACHED [bertsky/ocrd_controller:latest 13/29] COPY start-sshd.sh /usr/bin                                      0.0s
 => CACHED [bertsky/ocrd_controller:latest 14/29] WORKDIR /build                                                   0.0s
 => CACHED [bertsky/ocrd_controller:latest 15/29] RUN ln /usr/bin/python3 /usr/bin/python                          0.0s
 => CACHED [bertsky/ocrd_controller:latest 16/29] RUN git -C ocrd_fileformat fetch origin pull/39/head:pr-39       0.0s
 => CACHED [bertsky/ocrd_controller:latest 17/29] RUN git -C ocrd_fileformat checkout pr-39                        0.0s
 => CACHED [bertsky/ocrd_controller:latest 18/29] RUN make -C ocrd_fileformat install                              0.0s
 => CACHED [bertsky/ocrd_controller:latest 19/29] RUN git -C sbb_binarization fetch origin pull/31/head:setup-ini  0.0s
 => CACHED [bertsky/ocrd_controller:latest 20/29] RUN git -C sbb_binarization checkout setup-init                  0.0s
 => CACHED [bertsky/ocrd_controller:latest 21/29] RUN make -W sbb_binarization ocrd-sbb-binarize                   0.0s
 => CACHED [bertsky/ocrd_controller:latest 22/29] RUN git -C core fetch origin pull/652/head:workflow-server       0.0s
 => CACHED [bertsky/ocrd_controller:latest 23/29] RUN git -C core checkout workflow-server                         0.0s
 => CACHED [bertsky/ocrd_controller:latest 24/29] RUN make -C core install PIP_INSTALL="pip install -e"            0.0s
 => ERROR [bertsky/ocrd_controller:latest 25/29] RUN for venv in /usr/sub-venv/*; do . $venv/bin/activate && make  0.7s
------
 > [bertsky/ocrd_controller:latest 25/29] RUN for venv in /usr/sub-venv/*; do . $venv/bin/activate && make -C core install PIP_INSTALL="pip install -e"; done:
#0 0.645 /bin/sh: 1: .: Can't open /usr/sub-venv/*/bin/activate
------
failed to solve: executor failed running [/bin/sh -c for venv in /usr/sub-venv/*; do . $venv/bin/activate && make -C core install PIP_INSTALL="pip install -e"; done]: exit code: 2

Controller processing stops shortly after it was called

Manager

May  6 15:35:49 ocrd-manager for_production.sh: running with 3 26 /data/3 deu Fraktur ocr.sh CONTROLLER=ocrd-controller:22

Controller

May  6 15:35:34 ocrd-controller 15:35:34.885 INFO ocrd.cli.resmgr - Downloading resource {'description': 'Found at data on 2022-05-06 15:27:32.870356', 'name': 'frak2021.traineddata', 'size': 3421140, 'url': '/data/frak2021.traineddata', 'version_range': '???', 'type': 'file', 'parameter_usage': 'as-is', 'path_in_archive': '.'}

May  6 15:35:34 ocrd-controller 15:35:34.891 INFO ocrd.resource_manager._copy_impl - Copying /data/frak2021.traineddata

May  6 15:35:35 ocrd-controller 15:35:35.225 INFO ocrd.cli.resmgr - Downloaded /data/frak2021.traineddata to /models/ocrd-resources/ocrd-tesserocr-recognize/frak2021.traineddata

May  6 15:35:35 ocrd-controller 15:35:35.225 INFO ocrd.cli.resmgr - Use in parameters as 'frak2021.traineddata'

Optimize semaphore

Semaphore should not exclude itself during copying and processing. Starting the processing during the copying process would be desirable for performance reasons.

Problem while starting controller container

Tries to start container from base ocrd directory. Had to set --env-file explicit cause default .env is used from docker-compose without using parameter --project-directory.

$ docker-compose --env-file C:/Users/weigelt/Work/ocr-d/kitodo_production_ocrd/.env -f ./_modules/ocrd_controller/docker-compose.yml up -d --build ocrd-controller
[+] Building 2.3s (28/28) FINISHED
 => [internal] load build definition from Dockerfile                                                                                                                                                                                                                      0.0s
 => => transferring dockerfile: 32B                                                                                                                                                                                                                                       0.0s
 => [internal] load .dockerignore                                                                                                                                                                                                                                         0.1s
 => => transferring context: 34B                                                                                                                                                                                                                                          0.0s
 => [internal] load metadata for docker.io/ocrd/all:maximum-git                                                                                                                                                                                                           1.8s
 => [internal] load build context                                                                                                                                                                                                                                         0.0s
 => => transferring context: 72B                                                                                                                                                                                                                                          0.0s
 => [ 1/23] FROM docker.io/ocrd/all:maximum-git@sha256:c89329357099b6d8d67b1222f09b7222f717792b56bd59881b2580c030b4c705                                                                                                                                                   0.0s
 => CACHED [ 2/23] RUN apt-get update &&     apt-get install -y apt-utils wget git openssh-server rsyslog  &&     apt-get clean                                                                                                                                           0.0s
 => CACHED [ 3/23] RUN ssh-keygen -A                                                                                                                                                                                                                                      0.0s
 => CACHED [ 4/23] RUN mkdir /run/sshd /.ssh                                                                                                                                                                                                                              0.0s
 => CACHED [ 5/23] RUN echo Banner none >> /etc/ssh/sshd_config                                                                                                                                                                                                           0.0s
 => CACHED [ 6/23] RUN echo PrintMotd no >> /etc/ssh/sshd_config                                                                                                                                                                                                          0.0s
 => CACHED [ 7/23] RUN echo PermitUserEnvironment yes >> /etc/ssh/sshd_config                                                                                                                                                                                             0.0s
 => CACHED [ 8/23] RUN echo PermitUserRC yes >> /etc/ssh/sshd_config                                                                                                                                                                                                      0.0s
 => CACHED [ 9/23] RUN echo X11Forwarding no >> /etc/ssh/sshd_config                                                                                                                                                                                                      0.0s
 => CACHED [10/23] RUN echo AllowUsers ocrd >> /etc/ssh/sshd_config                                                                                                                                                                                                       0.0s
 => CACHED [11/23] RUN echo "cd /data" >> /etc/profile                                                                                                                                                                                                                    0.0s
 => CACHED [12/23] RUN echo 'umask $UMASK' >> /etc/profile                                                                                                                                                                                                                0.0s
 => CACHED [13/23] RUN /usr/sbin/sshd -t                                                                                                                                                                                                                                  0.0s
 => CACHED [14/23] COPY start-sshd.sh /usr/bin/                                                                                                                                                                                                                           0.0s
 => CACHED [15/23] WORKDIR /build                                                                                                                                                                                                                                         0.0s
 => CACHED [16/23] RUN ln /usr/bin/python3 /usr/bin/python                                                                                                                                                                                                                0.0s
 => CACHED [17/23] RUN git -C core fetch origin pull/652/head:workflow-server                                                                                                                                                                                             0.0s
 => CACHED [18/23] RUN git -C core checkout workflow-server                                                                                                                                                                                                               0.0s
 => CACHED [19/23] RUN for venv in /usr/local /usr/local/sub-venv/*; do . $venv/bin/activate && make -C core install PIP_INSTALL="pip install -e"; done                                                                                                                   0.0s
 => CACHED [20/23] RUN git -C workflow-configuration pull origin master                                                                                                                                                                                                   0.0s
 => CACHED [21/23] RUN . /usr/local/bin/activate && make -C workflow-configuration install                                                                                                                                                                                0.0s
 => CACHED [22/23] COPY ocrd_logging.conf /etc                                                                                                                                                                                                                            0.0s
 => CACHED [23/23] WORKDIR /data                                                                                                                                                                                                                                          0.0s
 => exporting to image                                                                                                                                                                                                                                                    0.3s
 => => exporting layers                                                                                                                                                                                                                                                   0.0s
 => => writing image sha256:8c29785924048f5d609220b2f80eb33eac4a9cf7e1f5b3bdfba9c183436b7972                                                                                                                                                                              0.0s
 => => naming to docker.io/bertsky/ocrd_controller                                                                                                                                                                                                                        0.0s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
[+] Running 1/2
 - Network kitodo_production_ocrd_default              Created                                                                                                                                                                                                            0.9s
 - Container kitodo_production_ocrd-ocrd-controller-1  Starting                                                                                                                                                                                                           1.3s
Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: Running hook #0:: error running hook: signal: segmentation fault, stdout: , stderr:: unkn
own

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.