Skip to content

Commit

Permalink
Remove Ubuntu 22.04 container
Browse files Browse the repository at this point in the history
  • Loading branch information
jbarlow83 committed Oct 27, 2024
1 parent 120ca72 commit 8138664
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 106 deletions.
65 changes: 16 additions & 49 deletions .docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,70 +1,42 @@
# SPDX-FileCopyrightText: 2022 James R. Barlow
# SPDX-FileCopyrightText: 2024 James R. Barlow
# SPDX-License-Identifier: MPL-2.0

FROM ubuntu:22.04 as base
FROM ubuntu:24.04 AS base

ENV LANG=C.UTF-8
ENV TZ=UTC
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections

RUN apt-get update && apt-get install -y --no-install-recommends \
python3 \
libqpdf-dev \
zlib1g \
liblept5
python-is-python3

FROM base as builder
FROM base AS builder

# Note we need leptonica here to build jbig2
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential autoconf automake libtool \
libleptonica-dev \
zlib1g-dev \
python3-dev \
python3-distutils \
libffi-dev \
ca-certificates \
curl \
python3-pip \
python3-venv \
git \
libcairo2-dev \
pkg-config

# Get the latest pip (Ubuntu version doesn't support manylinux2010)
RUN \
curl https://bootstrap.pypa.io/get-pip.py | python3

# Compile and install jbig2
# Needs libleptonica-dev, zlib1g-dev
RUN \
mkdir jbig2 \
&& curl -L https://github.com/agl/jbig2enc/archive/ea6a40a.tar.gz | \
tar xz -C jbig2 --strip-components=1 \
&& cd jbig2 \
&& ./autogen.sh && ./configure && make && make install \
&& cd .. \
&& rm -rf jbig2
curl

COPY . /app

WORKDIR /app

RUN pip3 install --no-cache-dir .[test,webservice,watcher]
RUN curl -LsSf https://astral.sh/uv/0.4.27/install.sh | sh

FROM base
ENV UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy

# For Tesseract 5
RUN apt-get update && apt-get install -y --no-install-recommends \
software-properties-common gpg-agent
RUN add-apt-repository -y ppa:alex-p/tesseract-ocr-devel
# Instead of restarting the shell, use uv directly from its installed location.
RUN /root/.cargo/bin/uv sync --extra test --extra webservice --extra watcher

FROM base

RUN apt-get update && apt-get install -y --no-install-recommends \
ghostscript \
fonts-droid-fallback \
jbig2dec \
img2pdf \
libsm6 libxext6 libxrender-dev \
pngquant \
python-is-python3 \
tesseract-ocr \
tesseract-ocr-chi-sim \
tesseract-ocr-deu \
Expand All @@ -77,14 +49,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \

WORKDIR /app

COPY --from=builder /usr/local/lib/ /usr/local/lib/
COPY --from=builder /usr/local/bin/ /usr/local/bin/
COPY --from=builder --chown=app:app /app /app

COPY --from=builder /app/misc/webservice.py /app/
COPY --from=builder /app/misc/watcher.py /app/
ENV PATH="/app/.venv/bin:${PATH}"

# Copy minimal project files to get the test suite.
COPY --from=builder /app/pyproject.toml /app/README.md /app/
COPY --from=builder /app/tests /app/tests
ENTRYPOINT ["/app/.venv/bin/ocrmypdf"]

ENTRYPOINT ["/usr/local/bin/ocrmypdf"]
57 changes: 0 additions & 57 deletions .docker/Dockerfile.ubuntu24

This file was deleted.

0 comments on commit 8138664

Please sign in to comment.