我正在尝试在一个puckel docker-airflow容器中安装poppler-utils,这样我就可以通过Airflow BashOperator对pdftotext进行命令行调用。有关如何设置和使用pdftotext的详细信息可以在here中找到,我可以确认它在直接安装在我的Linux Mint (Ubuntu) O/S上时工作得很好。
因此,由于我对Docker / puckel docker-airflow的理解有限,我转到Dockerfile并对其进行了如下修改(见底线):
RUN set -ex \
&& buildDeps=' \
freetds-dev \
libkrb5-dev \
libsasl2-dev \
libssl-dev \
libffi-dev \
libpq-dev \
git \
' \
&& apt-get update -yqq \
&& apt-get upgrade -yqq \
&& apt-get install -yqq --no-install-recommends \
$buildDeps \
freetds-bin \
build-essential \
default-libmysqlclient-dev \
apt-utils \
curl \
rsync \
netcat \
locales \
poppler-utils \
...但是,当我启动容器并尝试运行pdftotext (通过Airflow BashOperator或通过容器执行中的命令行)时,我得到:
bash: pdftotext: command not found有人能建议我怎么做吗?
干杯!
发布于 2020-08-30 06:27:49
快速解决方案是:
以root用户身份访问airflow worker的容器id
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c73425b30981 puckel/docker-airflow:1.10.9 "/entrypoint.sh work…" 7 hours ago Up 7 hours 5555/tcp, 8080/tcp, 8793/tcp airflow_worker_1docker exec -it --user root c73 /bin/bash
运行apt get update root@c73425b30981:/usr/local/airflow# apt-get update
然后安装用于Debian root@c73425b30981:/usr/local/airflow# apt-get install poppler-utils的pdftext工具。
然后,您将能够使用pdftotext命令
pdftotext {PDF-file} {text-file}
https://stackoverflow.com/questions/63649934
复制相似问题