Ошибка сборки 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