File size: 3,437 Bytes
0b2c32f
 
 
 
 
 
 
 
 
 
c12b4db
0b2c32f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ae1c610
95feba1
41d83da
 
4f40367
8fc1cff
 
0b2c32f
 
 
 
95feba1
0b2c32f
 
 
95feba1
0b2c32f
 
 
 
 
b5545a8
0b2c32f
 
 
b5545a8
0b2c32f
 
95feba1
39d3e97
f8d6c41
c12b4db
fe03d25
 
cf03fa9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a6dc5f7
cf03fa9
 
 
 
 
 
 
 
 
f8d6c41
fe03d25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#############################
# 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

COPY docker/entrypoint-rstudio.sh /usr/local/bin
RUN chmod u+x /usr/local/bin/entrypoint-rstudio.sh
ENTRYPOINT [ "/usr/local/bin/entrypoint-rstudio.sh" ]

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

RUN echo "---> Setup variables"
RUN IFS=',' read -ra ENV_VAR_NAMES <<< "$ENV_VARS"

RUN echo "ENV_VAR_NAMES=${ENV_VAR_NAMES[@]}"

# Loop through the array of environment variable names and set the variables
RUN for ENV_VAR_NAME in "${ENV_VAR_NAMES[@]}"; do \
  ENV_VAR_VALUE="${!ENV_VAR_NAME:-default}" \
  echo "$ENV_VAR_NAME=$ENV_VAR_VALUE" >> ${HOME}/rstudio/.Renviron \
done

RUN echo "--> Go!"