Конфигурация Dockerfile для R - не удается загрузить определенные пакеты - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь загрузить R в мой докер-контейнер через файл докера.Не удается установить некоторые пакеты R, например rvest.Я также устанавливаю NiFi & Python одновременно.Вот мой dockerfile:

FROM apache/nifi

ADD run.sh .
COPY nifi-extracttext-nar-1.5.nar /opt/nifi/nifi-1.8.0/lib
USER root
RUN apt-get update
RUN apt-get install -y python3 python3-dev python3-pip
RUN pip3 install bs4
RUN pip3 install requests
RUN chmod 777 run.sh

# PROBLEM AREA (everything above works great)
RUN apt-get -y install r-base
RUN apt-get -y install libcurl4-openssl-dev
RUN apt-get install libcurl4-openssl-dev

#setup R configs

FROM r-base:latest
RUN Rscript -e "install.packages('tidyverse', repos = 'http://cran.us.r-project.org')"
RUN Rscript -e "install.packages('httr', repos = 'http://cran.us.r-project.org')"
RUN Rscript -e "install.packages('rvest', repos = 'http://cran.us.rproject.org')"

USER nifi

ENTRYPOINT ["./run.sh"]

Проблемным моментом является определенная установка самого R, а также пакетов, которые я хочу.Как правильно отформатировать установку пакета R?Изначально я извлек формат из этой ссылки , но не настолько уверен, что Rscript является правильным.

rvest, кажется, является здесь особой проблемой.

UDPDATE:

Когда я пытаюсь запустить свой скрипт после сборки / запуска Docker, я получаю эту ошибку:

Error in library(httr) : there is no package called ‘httr’
Execution halted

ERROR: dependency ‘openssl’ is not available for package ‘httr’
* removing ‘/usr/local/lib/R/site-library/httr’

Почему это случилось ???Я установил его через Docker.


Вот некоторые из ошибок:

The downloaded source packages are in
'/tmp/RtmpykICxP/downloaded_packages'
Warning messages:
1: In install.packages("rvest", repos = "http://cran.us.r-project.org") :
installation of package 'openssl' had non-zero exit status
2: In install.packages("rvest", repos = "http://cran.us.r-project.org") :
installation of package 'xml2' had non-zero exit status
3: In install.packages("rvest", repos = "http://cran.us.r-project.org") :
installation of package 'httr' had non-zero exit status
4: In install.packages("rvest", repos = "http://cran.us.r-project.org") :
installation of package 'rvest' had non-zero exit status

И:

ERROR: configuration failed for package ‘xml2’
* removing ‘/usr/local/lib/R/site-library/xml2’
ERROR: dependency ‘openssl’ is not available for package ‘httr’
* removing ‘/usr/local/lib/R/site-library/httr’
ERROR: dependencies ‘xml2’, ‘httr’ are not available for package ‘rvest’
* removing ‘/usr/local/lib/R/site-library/rvest’

И:

ERROR: dependencies ‘xml2’, ‘httr’ are not available for package ‘rvest’

Я обнаружил эти ошибки после обхода терминала и построения образа.

1 Ответ

0 голосов
/ 01 февраля 2019

Вам необходимо установить xml2, openssl пакеты для ОС:

RUN apt-get -y install xml2 openssl

Обратите внимание, что -y указывает «да» на apt-get install, поэтому вы можете удалить

RUN apt-get install libcurl4-openssl-dev

, как и ваша предыдущая строка, делает то же самое.

Возможно, вы также захотите установить зависимости для пакетов R, например,

RUN Rscript -e "install.packages('tidyverse', repos = 'http://cran.us.r-project.org', dependencies=TRUE)"

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...