如何在Docker构建中包含Poppler

0 投票
1 回答
36 浏览
提问于 2025-04-12 06:51

我在用这个脚本把PDF文件转换成CBZ格式。在Windows上没问题,只需要把Poppler的bin文件夹加到PATH里就行了。
不过我想弄明白怎么在我的Dockerfile里安装Poppler(我是为了开发机器人)。

FROM python:3.8

RUN echo 'deb http://deb.debian.org/debian/ bullseye main contrib non-free' > /etc/apt/sources.list && \
    apt-get update && apt-get install -y unrar

WORKDIR /app

COPY . /app

RUN pip install -r requirements.txt

CMD ["python", "app.py"]

我只需要在requirements.txt里加上pip install python-poppler就可以了吗?还是说我还需要单独安装其他东西?

1 个回答

0

我用这种方法在Docker里设置了Poppler。

Dockerfile

FROM python:3.8

RUN apt-get update && apt-get install -y \
    wget \
    tar \
    cmake \
    libnss3 \
    libnss3-dev \
    libcairo2-dev \
    libjpeg-dev \
    libgif-dev \
    cmake \
    libblkid-dev \
    e2fslibs-dev \
    libboost-all-dev \
    libaudit-dev \
    libopenjp2-7-dev \
    g++  # Aggiunto il pacchetto g++

RUN wget https://poppler.freedesktop.org/poppler-21.09.0.tar.xz \
    && tar -xvf poppler-21.09.0.tar.xz \
    && cd poppler-21.09.0 \
    && mkdir build \
    && cd build \
    && cmake -DCMAKE_BUILD_TYPE=Release \
             -DCMAKE_INSTALL_PREFIX=/usr \
             -DTESTDATADIR=$PWD/testfiles \
             -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
             .. \
    && make \
    && make install

WORKDIR /app
COPY poppler.py /app/poppler.py

COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt

RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

ENV PATH="/poppler-21.09.0/build/utils:${PATH}"

CMD ["python", "poppler.py"]

撰写回答