Newer
Older
FROM rocker/rstudio:4.3.3 AS rstudio
# Set noninteractive mode to prevent prompts during installation
libcurl4-openssl-dev || apt-get install -y libcurl4-gnutls-dev \
pandoc \
libclang-dev \
libpq-dev \
libgit2-dev \
&& rm -rf /var/lib/apt/lists/*
# Install Miniconda
RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh && \
bash miniconda.sh -b -p /opt/miniconda && \
rm miniconda.sh
# Set environment variables for Conda
ENV PATH="/opt/miniconda/bin:$PATH"
# Create .condarc file for channel priority
RUN echo "channels:\n - conda-forge\n - bioconda" > /root/.condarc
# Create Conda environment and install dependencies
RUN conda create --name neuroestimator -y \
# Activate the Conda environment and install Tensorflow via Pip
RUN /bin/bash -c "source activate neuroestimator && \
pip install tensorflow==1.15.0 tensorflow-estimator==1.15.1"
# Create an Rstudio User
RUN id -u rstudio >/dev/null 2>&1 || useradd -m -s /bin/bash rstudio && \
echo "rstudio:rstudio" | chpasswd && \
usermod -aG sudo rstudio
# Ensure RStudio uses Conda's R
RUN echo 'export RSTUDIO_WHICH_R="/opt/miniconda/envs/neuroestimator/bin/R"' >> /etc/profile.d/rstudio.sh
# Install NEUROeSTIMator in the Conda environment
RUN conda run -n neuroestimator Rscript -e "install.packages('remotes')"
RUN conda run -n neuroestimator Rscript -e "remotes::install_version('dplyr',version='1.0.9')"
RUN conda run -n neuroestimator Rscript -e "remotes::install_version('keras',version='2.3.0')"
RUN conda run -n neuroestimator Rscript -e "remotes::install_version('tensorflow',version='2.2.0')"
RUN conda run -n neuroestimator Rscript -e "remotes::install_version('reticulate',version='1.24')"
RUN conda run -n neuroestimator Rscript -e "remotes::install_git('https://research-git.uiowa.edu/michaelson-lab-public/neuroestimator')"
# Ensure Conda environment is activated on container start
SHELL ["/bin/bash", "-c"]
# Expose RStudio Server port
EXPOSE 8787
ENTRYPOINT ["/bin/bash", "-c", "source activate neuroestimator && /usr/lib/rstudio-server/bin/rserver --server-user=$(whoami) --server-daemonize=0"]