Spaces:
Sleeping
Sleeping
File size: 6,709 Bytes
548f7d3 0b2c32f a45cd99 0b2c32f 00384fe 0b2c32f 0cb24ab 0b2c32f a45cd99 f17cc6c a45cd99 e7177ab 00384fe e7177ab a45cd99 e7177ab a45cd99 49c1de8 0b2c32f 00384fe a45cd99 0b2c32f 00384fe 0b2c32f 00384fe 41d83da 4f40367 8fc1cff 0b2c32f 95feba1 0b2c32f 95feba1 0b2c32f f36ec29 0b2c32f f17cc6c 00384fe f17cc6c 00384fe f17cc6c 982c3d5 f17cc6c 982c3d5 f17cc6c 6fd6bab 56bf83e f17cc6c 6fd6bab f17cc6c 0b2c32f 95feba1 39d3e97 f8d6c41 c12b4db fe03d25 cf03fa9 00384fe 56bf83e cf03fa9 56bf83e cf03fa9 56bf83e cf03fa9 56bf83e cf03fa9 b2f970f 8b2e56e 4cca4a8 548f7d3 4cca4a8 8b2e56e 6fd6bab cf03fa9 00384fe 4cca4a8 0cb24ab f8d6c41 548f7d3 |
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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
#R-Shiny template https://huggingface.co/spaces/posit/shiny-for-r-template/tree/main
#Py-shiny template https://huggingface.co/spaces/posit/gptneox-chat
#############################
# RSTUDIO-SERVER #
# VOLUME DOCKERFILE #
#***************************#
# Set up a jupyter-lab for #
# developing using deepvats #
#############################
##############
# Base image #
##############
# Adds rstudio server, tiyverse, devtools to rocker/cuda
FROM dvats-rstudio-base:latest
RUN echo "--> Prior installations" \
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A4B469963BF863CC \
set -e; \
apt-get update --fix-missing \
&& apt-get install -y \
python3-pip wget bzip2 curl \
git sudo libarchive-dev libtiff5-dev zsh\
#python3 -m pip install --upgrade pip \
python3-venv libxt-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
SHELL [ "/bin/bash", "--login", "-c" ]
###############
# Ensure vars # (Only for local test - DON'T USE IT IN HUGGINGFACE. ENSURE .env IS NOT ACCESIBLE IN THE WEB, USE THEIR SECRET MANAGEMENT)
###############
RUN echo "--> ARGS"
ARG USER_NAME=user \
USER_ID=1000 \
GROUP_ID \
WANDB_API_KEY \
WANDB_ENTITY \
WANDB_PROJECT \
GH_TOKEN
RUN echo "--> ARGS -> ENV"
ENV USER_NAME=$USER_NAME \
USER_ID=$USER_ID \
GROUP_ID=$GROUP_ID \
WANDB_ENTITY=$WANDB_ENTITY \
WANDB_API_KEY=$WANDB_API_KEY \
GH_TOKEN=$ghtoken \
WANDB_PROJECT=$WANDB_PROJECT
RUN echo "--> Setup ENV variables"
ENV RETICULATE_PYTHON_ENV=/home/${USER_NAME}/env \
ROOT=TRUE \
RETICULATE_MINICONDA_PATH=/home/${USER_NAME}/miniconda \
CUDA_VISIBLE_DEVICES=0,1,2 \
ENV_VARS=WANDB_ENTITY,WANDB_PROJECT,USER_NAME,USER_ID,GROUP_ID,PASSWORD,ROOT,CUDA_VISIBLE_DEVICES\
HOME="/home/${USER_NAME}"
###########
# Volumes #
###########
## Install R packages
# COPY docker/DESCRIPTION /tmp/
COPY --chown=${USER_ID}:${GROUP_ID} docker/DESCRIPTION /tmp/
RUN echo "--> Install R packages" \
R -e "devtools::install_deps('/tmp/', dependencies = TRUE)"
## Reticulate configuration
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
ENV MINICONDA_VERSION=4.10.3 \
#ENV MINICONDA_VERSION=23.9.0 \
CONDA_DIR=$HOME/miniconda3 \
# Make non-activate conda commands available
PATH=$CONDA_DIR/bin:$PATH \
PROJECT_DIR=$HOME
RUN echo "HOME: ${HOME} | CONDA_DIR = ${CONDA_DIR}" \
#-- Install MINICONDA
&& wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-py38_$MINICONDA_VERSION-Linux-x86_64.sh -O ~/miniconda.sh \
&& chmod +x ~/miniconda.sh \
&& ~/miniconda.sh -b -p $CONDA_DIR \
&& rm ~/miniconda.sh
# Make conda activate command available from /bin/bash --login shells
RUN echo ". $CONDA_DIR/etc/profile.d/conda.sh" >> $HOME/.profile
# make conda activate command available from /bin/bash --interative shells
RUN conda init bash \
# create a project directory inside user home
&& mkdir -p $PROJECT_DIR
WORKDIR $PROJECT_DIR
##########################
# Install & update MAMBA #
##########################
ENV ENV_PREFIX $PROJECT_DIR/env
RUN conda install --name base --channel conda-forge mamba \
&& mamba update --name base --channel defaults conda
#-- Build the mamba environment
RUN mamba install conda-lock -c conda-forge
COPY --chown=$UID:$GID docker/environment.yml docker/requirements.txt /tmp/
#RUN mamba lock -f /tmp/environment.yml --lockfile /tmp/environment.lock
#RUN mamba create --prefix ${ENV_PREFIX} --file /tmp/environment.lock
RUN mamba env create -vv --prefix ${ENV_PREFIX} --file /tmp/environment.yml
RUN conda clean --all --yes
# run the postBuild script to install the JupyterLab extensions
COPY --chown=$UID:$GID docker/postBuild /usr/local/bin
RUN chmod u+x /usr/local/bin/postBuild \
&& conda activate $ENV_PREFIX \
&& /usr/local/bin/postBuild \
&& conda deactivate \
# Make bash automatically activate the conda environment
&& echo "conda activate $ENV_PREFIX" >> ~/.bashrc
RUN chmod u+x /usr/local/bin/postBuild \
&& conda activate $ENV_PREFIX \
&& /usr/local/bin/postBuild \
&& conda deactivate \
# Make bash automatically activate the conda environment
&& echo "conda activate $ENV_PREFIX" >> ~/.bashrc
RUN conda list --prefix ${ENV_PREFIX}
RUN echo "--> rewrrite 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 )"
### Copy deepvats
RUN echo "---> Setup volumes" \
echo ${HOME} \
echo ${USER_NAME}"|"${USER_ID}"|"${GROUP_ID}
COPY --chown=${USER_ID}:${GROUP_ID} ../r_shiny_app $HOME/app
COPY --chown=${USER_ID}:${GROUP_ID} ${LOCAL_DATA_PATH} $HOME/data/
COPY --chown=${USER_ID}:${GROUP_ID} ../dvats ${HOME}/dvats
#RUN echo "--> Setup miniconda & Mamba"
#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_NAsME 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}/.Renviron
# Install deepvats
RUN pip install -e /home/${USER_NAME}/work
RUN echo "--> Go!"
CMD ["R", "--quiet", "-e", "shiny::runApp(host='0.0.0.0', port=${RSTUDIO_PORT:-3838}, launch.browser = FALSE, appDir = '/home/${USER_NAME}/app')"]
# CMD ["/init"]
|