81 lines
3.5 KiB
Docker
Executable File
81 lines
3.5 KiB
Docker
Executable File
ARG JUPYTERHUB_VERSION="latest"
|
|
FROM quay.io/jupyterhub/jupyterhub:$JUPYTERHUB_VERSION
|
|
LABEL base_image="Ubuntu 22.04.3 LTS"
|
|
|
|
ARG CREATE_USER="jovyan"
|
|
ARG CREATE_USER_PASSWD="password"
|
|
ARG ROOT_PASSWD="password"
|
|
ARG HOME="/home/${CREATE_USER}"
|
|
ARG DEBIAN_FRONTEND="noninteractive"
|
|
ENV DEBIAN_FRONTEND=${DEBIAN_FRONTEND}
|
|
ARG NODEJS_VERSION='18'
|
|
ENV NODEJS_VERSION=${NODEJS_VERSION}
|
|
|
|
USER root
|
|
RUN <<EOT
|
|
#!/bin/bash
|
|
# 更新软件源
|
|
apt-get update
|
|
# 安装时区数据包并设置时区
|
|
apt-get install -y tzdata
|
|
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
|
echo 'Asia/Shanghai' > /etc/timezone
|
|
dpkg-reconfigure -f noninteractive tzdata
|
|
sudo apt-get remove --purge libnode72:amd64 -y
|
|
curl -fsSL https://deb.nodesource.com/setup_${NODEJS_VERSION}.x | sudo -E bash -
|
|
# 安装所需的软件包
|
|
apt-get install -y python3 python3-pip gcc g++ build-essential nodejs npm gdebi-core curl wget openssh-server vim lrzsz net-tools sudo git
|
|
# 创建新用户
|
|
useradd -m -s /bin/bash ${CREATE_USER}
|
|
echo "${CREATE_USER}:${CREATE_USER_PASSWD}" | chpasswd
|
|
echo "${CREATE_USER} ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers
|
|
EOT
|
|
|
|
RUN <<EOT
|
|
#!/bin/bash
|
|
# 安装 Jupyter 和相关软件
|
|
npm install -g configurable-http-proxy yarn --registry=https://registry.npmmirror.com
|
|
python3 -m pip install ipython jupyter_packaging jupyterhub jupyterlab notebook radian pycurl jupyter-rsession-proxy \
|
|
ipykernel jupyterlab-language-pack-zh-CN jupyterlab-git jupyterlab-system-monitor jupyter_nbextensions_configurator \
|
|
jupyter_contrib_nbextensions jupyterlab-unfold jupyterlab_widgets jupyterlab-drawio jupyterlab-spreadsheet-editor \
|
|
jupyterlab-cell-flash jedi-language-server jupyterlab_code_formatter jupyterlab-spellchecker jupyterlab_vim nbresuse \
|
|
ipydrawio jedi ipympl black isort theme-darcula ipywidgets tensorboard jupyterlab_latex jupyter_bokeh autopep8 \
|
|
xeus-python jupyterlab-lsp python-lsp-server dockerspawner jupyterhub-nativeauthenticator lckr_jupyterlab_variableinspector -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
git clone https://ghproxy.dockless.eu.org/https://github.com/arose/nglview
|
|
cd nglview
|
|
python3 setup.py install
|
|
cd js
|
|
rm -rf node_modules package-lock.json
|
|
npm install typescript@latest --registry=https://registry.npmmirror.com
|
|
npm install --registry=https://registry.npmmirror.com
|
|
cd ../..
|
|
python -m ipykernel install --sys-prefix
|
|
jupyter nbextension enable --py --sys-prefix widgetsnbextension
|
|
jupyter nbextension enable --py --sys-prefix nglview
|
|
jupyter-nbextension enable nglview --py --sys-prefix
|
|
# 创建 JupyterHub 配置目录
|
|
mkdir -p /root/.jupyterhub
|
|
EOT
|
|
|
|
# jupyter-nbextension enable nglview --py --sys-prefix
|
|
# jupyter nbextension enable --py --sys-prefix widgetsnbextension
|
|
|
|
# install Rstudio
|
|
RUN <<EOT
|
|
#!/bin/bash
|
|
apt update -qq
|
|
apt install -y --no-install-recommends software-properties-common dirmngr
|
|
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
|
|
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
|
|
apt-get update
|
|
apt install --no-install-recommends r-base
|
|
sudo wget "https://download2.rstudio.org/server/$(lsb_release -cs)/amd64/rstudio-server-2023.06.1-524-amd64.deb" -O /tmp/rstudio-server.deb
|
|
sudo chmod +x /tmp/rstudio-server.deb
|
|
sudo gdebi -n /tmp/rstudio-server.deb
|
|
sudo rm -rf /tmp/rstudio-server.deb
|
|
# 清理和减小镜像大小
|
|
apt-get clean
|
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/man/?? /usr/share/man/??_*
|
|
EOT
|
|
|
|
CMD ["jupyterhub", "-f", "/srv/jupyterhub/jupyterhub_config.py"] |