Подключение контейнеров Rstudio и SFTP docker напрямую - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь запустить RStudio Server в docker контейнере. Пользователи будут подключаться к этому docker контейнеру и использовать RStudio через inte rnet.

Встроенный механизм загрузки и выгрузки файлов в Rstudio очень медленный, поэтому я также хотел бы запустить SFTP-сервер в отдельном контейнере.

Я пытаюсь связать два контейнера, использующие Docker тома, но у меня возникли некоторые проблемы. Вот как я пытаюсь запустить два изображения.

Я использую FTP-сервер, используя:

docker run -p 2222:22 -v /home/rstudio --name ftpserver -d atmoz/sftp rstudio:foo:1001

Затем я пытаюсь подключиться в тот же каталог в RStudio, выполнив:

docker run -d -p 8787:8787 -e PASSWORD=foo --volumes-from ftpserver --name rstudio r-studio-bio:Dockerfile

Это заставляет RStudio выдавать ошибку

RStudio Initialization Error. Unable to connect to service.

Аналогично я невозможно загрузить на FTP-сервер, поскольку он говорит, что у меня нет необходимых разрешений.

Образ FTP-сервера находится здесь: https://hub.docker.com/r/atmoz/sftp/

Файл Docker RStudio-Server :

# See the following for more info:
# https://hub.docker.com/r/pgensler/sandboxr/
# https://www.rocker-project.org/images/
# https://hub.docker.com/r/rocker/rstudio

FROM rocker/tidyverse
LABEL maintainer="Alex"
#

RUN mkdir -p $HOME/.R
RUN mkdir $HOME/Rlibs
ENV R_LIBS $HOME/Rlibs
# COPY R/Makevars /root/.R/Makevars

RUN apt-get update -qq \
    && apt-get -y --no-install-recommends install \
    curl \
    clang  \
    ccache \
    default-jdk \
    default-jre \
    wget \
    systemd \
    # openssh-server \
    && R CMD javareconf \
    # && systemctl ssh start \
    # && systemctl enable ssh \
    && rm -rf /var/lib/apt/lists/*

RUN wget \
    https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \
    && mkdir /root/.conda \
    && bash Miniconda3-latest-Linux-x86_64.sh -b \
    && rm -f Miniconda3-latest-Linux-x86_64.sh

# # Install additional R packages
RUN Rscript -e "BiocManager::install()"
RUN Rscript -e "BiocManager::install('multtest')"
RUN Rscript -e "install.packages('Seurat')"
...