首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在puckel docker-airflow docker容器中安装命令行实用程序

如何在puckel docker-airflow docker容器中安装命令行实用程序
EN

Stack Overflow用户
提问于 2020-08-30 01:33:53
回答 1查看 443关注 0票数 1

我正在尝试在一个puckel docker-airflow容器中安装poppler-utils,这样我就可以通过Airflow BashOperator对pdftotext进行命令行调用。有关如何设置和使用pdftotext的详细信息可以在here中找到,我可以确认它在直接安装在我的Linux Mint (Ubuntu) O/S上时工作得很好。

因此,由于我对Docker / puckel docker-airflow的理解有限,我转到Dockerfile并对其进行了如下修改(见底线):

代码语言:javascript
复制
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或通过容器执行中的命令行)时,我得到:

代码语言:javascript
复制
bash: pdftotext: command not found

有人能建议我怎么做吗?

干杯!

EN

回答 1

Stack Overflow用户

发布于 2020-08-30 06:27:49

快速解决方案是:

以root用户身份访问airflow worker的容器id

代码语言:javascript
复制
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_1

docker 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}

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63649934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档