Ошибка сборки Dockerfile

Я пытаюсь создать докер-файл для приложения Euler для тестирования ShinyProxy через " http://www.shinyproxy.io/deploying-apps/"

Я использую dockerfile по этой ссылке.

После использования команды sudo docker build -t openanalytics/shinyproxy-template .

Я получаю ошибку во время обработки сборки:

Error: unexpected end of input
Execution halted
The command '/bin/sh -c R -e "install.packages(c('shiny', 'rmarkdown', repos='https://cloud.r-project.org/')" ' returned a non-zero code: 1.

Мне любопытно, почему я получаю эту ошибку, поскольку это та же самая команда из файла dockerfile.

Что я могу сделать, чтобы решить эту проблему.

-Спасибо

1 ответ

Решение

Посмотрите внимательно на синтаксис строки библиотеки R install, и вы увидите, что в ней отсутствует закрывающая скобка

Я просто вручную исправил этот синтаксис, и он правильно строит этот шаг

правильный синтаксис

RUN R -e "install.packages(c('shiny', 'rmarkdown'), repos='https://cloud.r-project.org/')"

построить как

docker build --tag r_base .

ПРИМЕЧАНИЕ. - По мере того, как сборка Docker прогрессирует, она позже не может выполнить попытку

COPY euler /root/euler

lstat euler: no such file or directory

Чтобы устранить эту проблему, просто закомментируйте все строки Dockefile от дальнейших ошибок и замените нижнюю строку на

CMD ["/bin/bash"]

тогда он будет построен правильно и позволит вам войти в работающий контейнер для дальнейшего устранения неполадок

docker run -ti r_base bash

Я ничего не знаю о R, поэтому предоставлю читателю возможность исправить euler COPY ... очевидно, вы должны иметь euler, сидящий в вашем локальном каталоге, прежде чем вводить команду сборки docker

... теперь, после того, как вы выполнили команду docker, запустите команду из внутренней строки в контейнер.

cd /
find . | grep  Rprofile.site

./usr/lib/R/etc/Rprofile.site

Это выглядит хорошо, так что оставьте закомментированный свой COPY в Dockerfile

Другие вопросы по тегам