Я долго искал и пробовал много предложенных идей, но не нашел окончательного решения для своей проблемы, надеюсь, я смогу сформулировать вопрос достаточно конкретно, так как я довольно новичок во всем мире докеров.
Хорошо, вот и все:
контейнеры Docker запускаются на автономном сервере (на базе CentOS, не важно, я думаю)
мы тянемОбразы Docker локально (на компьютере с Windows, также не имеет значения), а затем выгрузите и запустите их на автономном сервере
для rstudio (rocker), это иногда неудобно, поскольку новые пакеты не могут быть загруженычерез install.packages ('pkgname'), но, скорее, его нужно загрузить как tar.gz со всеми зависимостями, а затем загрузить и установить;это работает
однако некоторые пакеты также требуют установки другого программного обеспечения, тогда наш обходной путь перестает работать
в конкретном случае, который я хочу установитьSpacyr PCakage, который загружает и устанавливает Miniconda
локально это работает, и мой рабочий процесс будет (отредактирован)
docker pull rocker/rstudio
docker container run -d -e PASSWORD=... -p 28787:8787 rocker/rstudio
docker exec -ti some_name /bin/bash
R
install.packages('spacyr')
library(spacyr)
spacy_install()
q()
exit
docker stop some_name
docker commit some_name rstudio_spacyr
- - здесь я бы использовал
docker save
, а затем docker load
на сервере - sudo docker run -d -e PASSWORD=...--rm -p -e ROOT=TRUE 38787:8787
rstudio_spacyr
А теперь вот проблема: spacyr может быть загружен через library(spacyr)
, однако spacy_install()
, который работал в прошлый раз, теперь больше не отображается с сообщением об ошибке:
Finding a python executable with spaCy installed...
Error in set_spacy_python_option(python_executable, virtualenv, condaenv, :
spaCy or language model en is not installed in any of python executables.
Однако, если я иду в терминал Rstudio,d type sudo ls /root/miniconda/bin
Я вижу, что все есть.Таким образом, мой коммит работает, но у меня нет root-доступа, так как команда без sudo приводит к ls: cannot access '/root/miniconda/bin': Permission denied
.
Как ни странно, если я запускаю R из терминала Rstudio с sudo R
, то всеработает как ожидалось.К сожалению, нам нужно, чтобы это работало в Rstudio, а не только в R.
То, что я пытался сделать (и я знаю, что некоторые из этих вещей пугают):
Теперь я действительно не знаю, как именно решить эту проблему, и я был бы признателен за любую помощь, которую я могу получить.
Я подозреваю, что мне нужно что-то изменить в шаге фиксации Docker?Или мне действительно нужно манипулировать разрешениями и пользователями?Может быть, я мог бы также посмотреть, как именно установлена Miniconda и изменить ее, чтобы не быть в корне?Но как?
Большое спасибо за чтение и комментирование!