docker-compose up --build
- Cellchat
- xterm for plotting
- pandoc for Rmarkdowns
version: '3' | |
services: | |
r-housing: | |
build: . | |
cap_add: | |
- SYS_PTRACE #but i want gdb | |
security_opt: | |
- seccomp:unconfined | |
tty: true | |
stdin_open: true | |
ports: | |
- "1337:1337" | |
hostname: envi-r-on |
FROM ubuntu:latest | |
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -qy \ | |
openssh-server \ | |
vim \ | |
python3 \ | |
python3-pip \ | |
python-is-python3 \ | |
gcc \ | |
gdb \ | |
lrzsz \ | |
xterm \ | |
software-properties-common \ | |
dirmngr \ | |
htop \ | |
sudo \ | |
libxml2-dev \ | |
libssl-dev \ | |
libcurl4-openssl-dev \ | |
libfontconfig1-dev \ | |
libcairo2-dev \ | |
libxt-dev \ | |
git \ | |
pandoc \ | |
texlive-latex-base \ | |
texlive-fonts-recommended \ | |
texlive-fonts-extra \ | |
texlive-latex-extra \ | |
libharfbuzz-dev \ | |
libfribidi-dev \ | |
libfreetype6-dev \ | |
libpng-dev \ | |
libtiff5-dev \ | |
libjpeg-dev | |
#install R & radian for quality life | |
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 | |
RUN add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/" | |
RUN apt-get install -qy r-base | |
RUN python -m pip install radian umap-learn | |
#R littler for more efficient scripting | |
RUN R -e "install.packages('littler')" | |
RUN ln -s /usr/local/lib/R/site-library/littler/bin/r /usr/bin | |
#install tidyverse, Cellchat & its dependencies | |
RUN r -e "install.packages('tidyverse')" | |
RUN r -e "install.packages('shiny')" | |
RUN r -e "install.packages('BiocManager')" | |
RUN r -e "BiocManager::install('Biobase')" | |
RUN r -e "BiocManager::install('ComplexHeatmap')" | |
RUN r -e "install.packages('devtools')" | |
RUN r -e "install.packages('httpgd')" | |
RUN r -e "devtools::install_github('sqjin/CellChat')" | |
RUN r -e "install.packages('Seurat')" | |
#global setup script | |
COPY setup.sh /root/setup.sh | |
CMD ["/bin/sh", "/root/setup.sh"] |
#!/bin/sh | |
echo "[\033[1;32m+\033[0m] adding user" | |
echo "[edit here to add user]"; exit || echo "[\033[1;33m!\033[0m] failed to add user" | |
echo "[\033[1;32m+\033[0m] setting user password" | |
echo "[edit here to change password]"; exit || echo "[\033[1;33m!\033[0m] failed to set user password" | |
# Set SSHD option and start SSH service | |
echo "[\033[1;32m+\033[0m] starting sshd" | |
#sed -ri 's/^#?PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config | |
sed -ri 's/^#*?Port\s+.*/Port 1337/' /etc/ssh/sshd_config | |
sed -ri 's/^#?X11UseLocalhost\s+.*/X11UseLocalhost no/' /etc/ssh/sshd_config | |
service ssh start | |
echo "[\033[1;32m+\033[0m] Ready" | |
exec bash |