Spaces:
Sleeping
Sleeping
File size: 4,910 Bytes
548f7d3 0b2c32f a45cd99 0b2c32f 04a01cd 0cb24ab 0b2c32f a45cd99 8d233da a45cd99 e7177ab 00384fe e7177ab 04a01cd e7177ab 8d233da e7177ab 8d233da e7177ab 8d233da a45cd99 95feba1 0b2c32f f17cc6c 00384fe f17cc6c 00384fe f17cc6c 982c3d5 f17cc6c 982c3d5 f17cc6c 6fd6bab 56bf83e f17cc6c 6fd6bab f17cc6c 0b2c32f 95feba1 39d3e97 f8d6c41 c12b4db fe03d25 cf03fa9 00384fe cf03fa9 04a01cd 4cca4a8 04a01cd 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 |
#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 misantamaria/dvats-rstudio:0
SHELL [ "/bin/bash", "--login", "-c" ]
###############
# Ensure vars #
###############
RUN echo "--> ARGS"
ARG USER_NAME=user \
USER_ID=1000 \
GROUP_ID \
WANDB_ENTITY \
WANDB_PROJECT \
RUN echo "--> ARGS -> ENV"
ENV USER_NAME=$USER_NAME \
USER_ID=$USER_ID \
GROUP_ID=$GROUP_ID \
WANDB_ENTITY=$WANDB_ENTITY \
WANDB_PROJECT=$WANDB_PROJECT
RUN echo "--> Setup ENV variables"
ENV RETICULATE_PYTHON_ENV=/home/env \
ROOT=TRUE \
RETICULATE_MINICONDA_PATH=/home//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/"
RUN echo "---> RETICULATE PYTHONS"
RUN echo "RETICULATE_PYTHON_ENV=${RETICULATE_PYTHON_ENV}" >> ${HOME}/.Renviron
RUN echo "RETICULATE_PYTHON=${RETICULATE_PYTHON}" >> ${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
# 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')"]
|