Spaces:
Sleeping
Sleeping
| ############################# | |
| # RSTUDIO-SERVER # | |
| # VOLUME DOCKERFILE # | |
| #***************************# | |
| # Set up a jupyter-lab for # | |
| # developing using deepvats # | |
| ############################# | |
| ############## | |
| # Base image # | |
| ############## | |
| # Adds rstudio server, tiyverse, devtools to rocker/cuda | |
| FROM rocker/ml:4.2 | |
| SHELL [ "/bin/bash", "--login", "-c" ] | |
| RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A4B469963BF863CC | |
| RUN apt-get update | |
| RUN apt-get install -y python3-pip | |
| RUN python3 -m pip install --upgrade pip | |
| RUN apt-get install -y python3-venv libxt-dev | |
| ## Install R packages | |
| #COPY docker/DESCRIPTION /tmp/ | |
| COPY --chown=${UID}:${GID} docker/DESCRIPTION /tmp/ | |
| RUN ls -la /tmp/ && sleep 5 | |
| #RUN R -e "install.packages(deps_path = '/tmp/DESCRIPTION', remotes::dev_package_deps(dependencies = TRUE), repos = NULL)" | |
| RUN R -e "devtools::install_deps('/tmp/', dependencies = TRUE)" | |
| #RUN R -e "install.packages(c('shiny', 'pals', 'shinyWidgets', 'dygraphs', 'shinycssloaders', 'shinyjs', 'Rcpp', 'reactlog', 'pals', 'feather', 'fasttime', 'zoo', 'shinyWidgets'))" | |
| #RUN R -e "remotes::install_github('r-lib/later')" | |
| #RUN R -e "remotes::install_github('apache/arrow/r')" | |
| ## Install reticulate and create virtual environment using default Ubuntu installed Python | |
| #RUN R -e "install.packages('reticulate')" | |
| ENV HOME /home/ | |
| ENV ENV_PREFIX $HOME/env | |
| RUN echo "---> Make sudo & setup sudoers" | |
| RUN echo "$(id)" | |
| ARG RETICULATE_MINICONDA_PATH=/usr/local/share/r-miniconda | |
| ARG RETICULATE_PYTHON_ENV=/usr/virtualenvs/venv_shiny_app | |
| ENV RETICULATE_PYTHON=${RETICULATE_PYTHON_ENV}/bin/python/ | |
| RUN echo "---> RETICULATE PYTHONS" | |
| RUN echo "RETICULATE_PYTHON_ENV=${RETICULATE_PYTHON_ENV}" >> ${HOME}/.Renviron | |
| RUN echo "RETICULATE_PYTHON=${RETICULATE_PYTHON}" >> ${HOME}/.Renviron | |
| RUN echo "---> Export W&B" | |
| ## Export W&B environment variable to Rstudio | |
| ARG WANDB_API_KEY | |
| RUN echo "WANDB_API_KEY=${WANDB_API_KEY}" >> /${HOME}/.Renviron | |
| RUN echo "--> rewruie miniconda path" | |
| # Rewrite the miniconda path environment in case it has been redefined in the compose file | |
| RUN echo "RETICULATE_MINICONDA_PATH=${RETICULATE_MINICONDA_PATH}" >> ${HOME}/.Renviron | |
| RUN echo "---> Make non-activate conda commands available" | |
| RUN # make non-activate conda commands available | |
| ENV PATH=${RETICULATE_MINICONDA_PATH}/bin:${PATH} | |
| RUN echo "--> Permissions" | |
| RUN echo "$(id )" | |
| RUN echo "--> Setup miniconda3" | |
| RUN echo ". ${HOME}miniconda3/etc/profile.d/conda.sh" >> ${HOME}/rstudio/.bashrc | |
| RUN echo "--> Conda activate" | |
| # Make bash automatically activate the conda environment | |
| RUN echo "conda activate ${ENV_PREFIX}" >> ${HOME}/rstudio/.bashrc | |
| #echo "export WANDB_ENTITY=${WANDB_ENTITY:-default}" >> ${HOME}/.bashrc | |
| # echo "WANDB_ENTITY=${WANDB_ENTITY:-default}" >> ${HOME}/.Renviron | |
| # Define an array of environment variable names from the ENV_VARS Compose variable | |
| ARG ENV_VARS=ENV_VARS | |
| RUN echo "---> Setup variables" && \ | |
| IFS=',' read -ra NAMES <<< "ENV_VARS" && \ | |
| for ENV_VAR_NAME in "${NAMES[@]}"; do \ | |
| #echo "$ENV_VARS" | tr ',' '\n' | while read ENV_VAR_NAME; do \ | |
| ENV_VAR_VALUE="${!ENV_VAR_NAME:-default}"; \ | |
| echo "$ENV_VAR_NAME=$ENV_VAR_VALUE"; \ | |
| done > ${HOME}/rstudio/.Renviron | |
| RUN echo "--> Go!" | |
| CMD ["/init"] | |