Skip to content

Latest commit

 

History

History
92 lines (65 loc) · 2.83 KB

docker.md

File metadata and controls

92 lines (65 loc) · 2.83 KB

Dockerfile provided by MP

MP should provide a Dockerfile that should result in a container which bundles the tools developed by the MP along with all requirements.

Based on ocrd:core

Docker containers should be based on the ocrd base image which itself is based on Ubuntu 18.04. For one, this allows MP to use the ocrd tool to handle recurrent tasks in a spec-conformant way. Besides, it locally installed and containerized CLI interchangeable.

Naming images

Image tags MUST be the same as the project name but with underscore (_) replaced with forward slash (/).

Examples:

project name docker tag
ocrd_tesserocr ocrd/tesserocr
ocrd_calamari ocrd/calamari
ocrd_olena ocrd/olena

Labelling images

The Dockerfile MUST accept build args VCS_REF and BUILD_DATE.

VCS_REF contains the short id of the latest commit this image was built upon.

BUILD_DATE contains an ISO-8601 date.

From these build args, the image shall be labelled with this command:

LABEL \
    maintainer="https://github.com/YOUR/PROJECT/issues" \
    org.label-schema.vcs-ref=$VCS_REF \
    org.label-schema.vcs-url="https://github.com/YOUR/PROJECT" \
    org.label-schema.build-date=$BUILD_DATE

maintainer and org.label-schema.cvs-url shall point to the issues and landing page of the GitHub project resp.

Shell entrypoint

No CMD should be provided.

No ENTRYPOINT should be provided.

If CMD or ENTRYPOINT are provided, they should be empty arrays.

/data as volume

The directory /data in the the container should be marked as a volume to allow processing host data in the container in a uniform way.

Example

Dockerfile

FROM ocrd:core
VOLUME ["/data"]
ARG VCS_REF
ARG BUILD_DATE
LABEL \
    maintainer="https://github.com/bar/ocrd_foo/issues" \
    org.label-schema.vcs-ref=$VCS_REF \
    org.label-schema.vcs-url="https://github.com/bar/ocrd_foo" \
    org.label-schema.build-date=$BUILD_DATE

# RUN-commands to install requirements, build and install
# e.g.
# apt-get install -y curl

ENTRYPOINT []

Command to build docker image

docker build \
  -t 'ocrd/foo' \
	--build-arg VCS_REF=$(git rev-parse --short HEAD) \
	--build-arg BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")