Как установить poppler на gcp app engine с помощью dockerfile? - PullRequest
0 голосов
/ 18 марта 2019

Я развертываю приложение, использующее pdf2image для gcp app engine.Когда я захотел проверить это, я получил ошибку:

pdf2image.exceptions.PDFInfoNotInstalledError: Невозможно получить количество страниц.Установлен ли poppler и в PATH?

Я нашел эту запись и добавил dockerfile в свой проект, вот как это выглядит:

FROM gcr.io/google-appengine/python

# Create a virtualenv for dependencies. This isolates these packages from
# system-level packages.
# Use -p python3 or -p python3.7 to select python version. Default is version 2.
RUN apt-get install poppler-utils
RUN virtualenv -p python3.7 /env

# Setting these environment variables are the same as running
# source /env/bin/activate.
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH

# Copy the application's requirements.txt and run pip to install all
# dependencies into the virtualenv.
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt

# Add the application source code.
ADD . /app

# Run a WSGI server to serve the application. gunicorn must be declared as
# a dependency in requirements.txt.
CMD gunicorn -b :$PORT main:app

Я такжеизменил файл app.yaml:

runtime: custom
env: flex

И теперь, когда я пытаюсь развернуть приложение, я получаю:

Шаг 2/9: RUN apt-get install poppler-utils

---> Работа в db1e5bebd0a8

Чтение списков пакетов ...

Построение дерева зависимостей ...

Чтение информации о состоянии ...

E: невозможно найти пакет poppler-utils

Команда '/ bin / sh -c apt-get install poppler-utils' вернула ненулевой код: 100

ОШИБКА

ОШИБКА: сбой шага сборки 0 "gcr.io/cloud-builders/docker": состояние выхода 100

Я также попробовал python-poppler вместо poppler-utils иполучил ту же ошибку.

Я нашел этот пост об установке poppler , и теперь мне интересно, могу ли я сделать это в Dockerfile, я раньше не работал с Docker, это был мойпервый докер-файл.

1 Ответ

1 голос
/ 18 марта 2019

Вы должны получить пакет с apt-get update перед установкой, иначе менеджер пакетов не найдет его и не выдаст эту ошибку.

Кроме того, установка пакета потребует от вас подтверждения установки, набрав Y/n в приглашении, что вы не сможете сделать в Dockerfile. Чтобы избежать этого, добавьте флаг -y к команде apt-get install.

Добавление этих изменений в ваш Dockerfile будет выглядеть так:

FROM gcr.io/google-appengine/python

RUN apt-get update
RUN apt-get install poppler-utils -y
RUN virtualenv -p python3.7 /env

# Rest of your build steps...
...