enable all image build (CI)

This commit is contained in:
ben0i0d 2024-09-26 02:23:46 +08:00
parent c9a4a4e81c
commit e99edf28fb
29 changed files with 181 additions and 153 deletions

116
.gitea/workflows/Build.yaml Normal file
View File

@ -0,0 +1,116 @@
name: Build
on: [push]
jobs:
Build:
runs-on: runner
steps:
- name: switch mirror
run: sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
- name: setup node & git & CA
run: apk update && apk add nodejs git ca-certificates docker
- name: checkout code
uses: https://eoelab.org:1027/actions/checkout@v4
- name: login gitea_registry
uses: https://eoelab.org:1027/actions/login-action@v3
with:
registry: eoelab.org:1027
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWD }}
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: python/cpu
tags: eoelab.org:1027/ben0i0d/jupyter:py-c
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: scrpy
tags: eoelab.org:1027/ben0i0d/jupyter:scrpy
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: scipy/cpu
tags: eoelab.org:1027/ben0i0d/jupyter:scipy-c
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: pyai/cpu
tags: eoelab.org:1027/ben0i0d/jupyter:pyai-c
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: pyspark
tags: eoelab.org:1027/ben0i0d/jupyter:pyspark
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: pyflink
tags: eoelab.org:1027/ben0i0d/jupyter:pyflink
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: julia
tags: eoelab.org:1027/ben0i0d/jupyter:julia
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: r
tags: eoelab.org:1027/ben0i0d/jupyter:r
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: novnc
tags: eoelab.org:1027/ben0i0d/jupyter:novnc
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: pyqt6
tags: eoelab.org:1027/ben0i0d/jupyter:pyqt6
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: octave
tags: eoelab.org:1027/ben0i0d/jupyter:octave
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: sagemath
tags: eoelab.org:1027/ben0i0d/jupyter:sage
- name: build & push image
uses: https://eoelab.org:1027/actions/build-push-action@v6
with:
push: true
context: scilab
tags: eoelab.org:1027/ben0i0d/jupyter:scilab

View File

@ -13,7 +13,7 @@ English | [中文](README_CN.md)
* No data is used persistently`docker run -d -p 8888:8888 docker.io/ben0i0d/jupyter:<tag>`
* Provide data for persistent use`docker run -d -p 8888:8888 -v "${PWD}":/home/jovyan docker.io/ben0i0d/jupyter:<tag>`
**Jupyterhub**
**Jupyterhub on K8S**
Specify the image in the profile of the singleuser
```
- description: SCIPython, for scientific research and engineering applications.
@ -21,6 +21,13 @@ Specify the image in the profile of the singleuser
kubespawner_override:
image: docker.io/ben0i0d/jupyter:scipy-c
```
**Jupyterhub on Docker**
```
c.DockerSpawner.allowed_images = {
'Python': 'ben0i0d/jupyter:py-c'
}
```
### Global description
1. If you build or fork the image yourself, replace the base image in the Dockerfile with the image on DockerHub
2. For commercial software such as Mathematica, MATLAB, etc., we only provide packaging, and the specific activation method and possible consequences are borne by the user
@ -28,9 +35,8 @@ Specify the image in the profile of the singleuser
* Upstream: Mirror upstream, benchmarking against the jupyter official minimal-notebook image
* Description
1. Upstream has switched to `debian:bookworm-slim`, and GPU upstream images are also built based on `debian:bookworm`
2. By default, we add the domain certificate of eoelab.org, which does not pose any security issues
3. Sudo is added for passwordless use. In scenarios with high security requirements, do not allow privilege escalation
4. Provided packages: file compression/extraction (.zip), project management (git), Chinese fonts (fonts-wqy-zenhei)
2. Sudo is added for passwordless use. In scenarios with high security requirements, do not allow privilege escalation
3. Provided packages: file compression/extraction (.zip), project management (git), Chinese fonts (fonts-wqy-zenhei)
* Python: Supports Python , combining Python syntax with the ecosystem for production and research.
* Scipy: Provides a scientific computing environment for Python, offering rich numerical computation, optimization, signal processing, statistical analysis, etc., for scientific research and engineering applications.
* Scrpy: Provides a web scraping environment for Python, used for extracting data from the internet, automating information gathering and analysis tasks, suitable for data mining, web scraping, and business intelligence collection applications.
@ -74,7 +80,6 @@ graph LR
Python-->PROGRAM{PROGRAMLANG}
PROGRAM-->PB(R)
PROGRAM-->PC(Julia)
PROGRAM-->PR(mojo)
Python-->PRA(Scipy)
Python-->PRB(Scrpy)
PRA-->PRAA(pyai)

View File

@ -13,7 +13,7 @@ English | [中文](README_CN.md)
* 没有数据持久化地使用:`docker run -d -p 8888:8888 docker.io/ben0i0d/jupyter:<tag>`
* 提供数据持久化地使用:`docker run -d -p 8888:8888 -v "${PWD}":/home/jovyan docker.io/ben0i0d/jupyter:<tag>`
**Jupyterhub**
**Jupyterhub on K8S**
在singleuser内的profile指定镜像
```
- description: 提供Python的科学计算环境提供了丰富的数值计算、优化、信号处理、统计分析等功能用于科学研究和工程应用。
@ -21,6 +21,13 @@ English | [中文](README_CN.md)
kubespawner_override:
image: docker.io/ben0i0d/jupyter:scipy-c
```
**Jupyterhub on Docker**
```
c.DockerSpawner.allowed_images = {
'Python': 'ben0i0d/jupyter:py-c'
}
```
### 全局说明
1. 如果自行构建或派生替换dockerfile中的基础镜像为dockerhub上的镜像
2. 对于例如MathematicaMATLAB等商业软件我们只提供打包具体激活方式及可能带来的后果由用户承担
@ -36,9 +43,8 @@ plt.rcParams["font.family"] = zh_font.get_name()
* Upstream: 镜像上游对标jupyter官方的minimal-notebook镜像
* 说明
1. 上游已经切换到`debian:bookworm-slim`GPU上游镜像也基于`debian:bookworm`二次构建了镜像
2. 默认情况下我们添加了eoelab.org的域名证书这不会带来安全问题
3. 添加了sudo的无密码使用在安全要求较高的场景中不要允许特权提升
4. 提供软件包:文件压缩/解压(.zip),项目管理(git),中文字体fonts-wqy-zenhei
2. 添加了sudo的无密码使用在安全要求较高的场景中不要允许特权提升
3. 提供软件包:文件压缩/解压(.zip),项目管理(git),中文字体fonts-wqy-zenhei
* LlinuxWith Desktop-GUI在无特权的情况下学习Linux系统提供Xfce桌面支持
* Python支持Python通过将python语法与生态系统相结合进行生产与研究。
* Scipy提供Python的科学计算环境提供了丰富的数值计算、优化、信号处理、统计分析等功能用于科学研究和工程应用。
@ -82,7 +88,6 @@ graph LR
Python-->PROGRAM{PROGRAMLANG}
PROGRAM-->PB(R)
PROGRAM-->PC(Julia)
PROGRAM-->PR(mojo)
Python-->PRA(Scipy)
Python-->PRB(Scrpy)
PRA-->PRAA(pyai)

View File

@ -1,27 +0,0 @@
# auto build image
remote="docker.io/ben0i0d/jupyter"
arch="amd64"
# Python
source=(python/cpu python/gpu scipy/cpu scipy/gpu scrpy pyflink pyspark pyai/cpu pyai/gpu)
target=(py-c py-g scipy-c scipy-g scrpy pyflink pyspark pyai-c pyai-g)
for arch in $arch; do
for i in {0..9}; do
podman build --arch=$arch -t $remote:${target[i]} ${source[i]}
done
done
# Other
source=(julia maple mathematica matlab/minimal matlab/mcm sagemath octave r sagemath scilab)
target=(julia maple mma matlab-minimal matlab-mcm sage octave r sage scilab)
for arch in $arch; do
for i in {0..9}; do
podman build --arch=$arch -t $remote:${target[i]} ${source[i]}
done
done

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:py-c AS builder
FROM eoelab.org:1027/ben0i0d/jupyter:py-c AS builder
USER root
@ -6,12 +6,12 @@ USER root
RUN apt-get update --yes && apt-get install --yes --no-install-recommends gnupg && apt-get clean && rm -rf /var/lib/apt/lists/* && \
pip --no-cache-dir install jill && jill install --confirm
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoelab.org:1027/ben0i0d/jupyter:py-c
COPY --chown="${NB_UID}:${NB_GID}" --from=builder /opt/julias/ /opt/julias/
ENV JULIA_PKG_SERVER=https://mirrors.cernet.edu.cn/julia \
JULIA_NUM_THREADS=12
JULIA_NUM_THREADS=8
USER root

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:py-c AS builder
FROM eoelab.org:1027/ben0i0d/jupyter:py-c AS builder
COPY Maple2024.0LinuxX64Installer.run .
@ -7,7 +7,7 @@ USER root
RUN chmod +x Maple2024.0LinuxX64Installer.run && \
./Maple2024.0LinuxX64Installer.run --mode unattended --installer-language en --installdir /opt/maple --desktopshortcut 0 && rm Maple2024.0LinuxX64Installer.run
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoelab.org:1027/ben0i0d/jupyter:py-c
ENV PATH="${PATH}:/opt/maple/bin"

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:py-c AS builder
FROM eoalab.org:1027/ben0i0d/jupyter:py-c AS builder
COPY Mathematica_14.0.0_LINUX.sh .
@ -9,7 +9,7 @@ RUN apt-get update --yes && apt-get install --yes --no-install-recommends xz-uti
RUN git clone --depth 1 https://github.com/WolframResearch/WolframLanguageForJupyter.git && mv WolframLanguageForJupyter /opt
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoalab.org:1027/ben0i0d/jupyter:py-c
ENV PATH="${PATH}:/opt/Wolfram/Mathematica/14.0/Executables/"

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:matlab-minimal
FROM eoelab.org:1027/ben0i0d/jupyter:matlab-minimal
USER root

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoelab.org:1027/ben0i0d/jupyte:py-c
USER root

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoalab.org:1027/ben0i0d/jupyter:py-c
USER root

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoelab.org:1027/ben0i0d/jupyter:py-c
USER root
# Install Octave + graph_toolkit

17
push.sh
View File

@ -1,17 +0,0 @@
# auto push image
remote="docker.io/ben0i0d/jupyter"
# Python
target=(py-c py-g scipy-c scipy-g scrpy pyflink pyspark pyai-c pyai-g)
for i in {0..9}; do
podman push $remote:${target[i]}
done
# Other
target=(julia maple mma matlab-minimal matlab-mcm sage octave r sage scilab)
for i in {0..9}; do
podman push $remote:${target[i]}
done

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:scipy-c
FROM eoelab.org:1027/ben0i0d/jupyter:scipy-c
# install torch
RUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu && \

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:scipy-g
FROM eoelab.org:1027/ben0i0d/jupyter:scipy-g
# install torch transformers
RUN pip install torch torchvision torchaudio && \

View File

@ -1,14 +1,14 @@
FROM docker.io/ben0i0d/jupyter:py-c AS builder
FROM eoelab.org:1027/ben0i0d/jupyter:py-c AS builder
USER root
# You need to use https://archive.apache.org/dist/ website if you want to download old Spark versions
# But it seems to be slower, that's why we use recommended site for download
RUN apt-get update --yes && apt-get install --yes --no-install-recommends wget && \
apt-get clean && rm -rf /var/lib/apt/lists/* && \
wget -qO "flink.tgz" "https://mirrors.ustc.edu.cn/apache/flink/flink-1.19.0/flink-1.19.0-bin-scala_2.12.tgz" && \
wget -qO "flink.tgz" "https://mirrors.ustc.edu.cn/apache/flink/flink-1.20.0/flink-1.20.0-bin-scala_2.12.tgz" && \
tar xzf "flink.tgz" -C /usr/local --no-same-owner && rm "flink.tgz"
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoelab.org:1027/ben0i0d/jupyter:py-c
USER root
@ -16,11 +16,11 @@ USER root
ENV FLINK_HOME=/usr/local/flink \
PATH="${PATH}:/usr/local/flink/bin"
COPY --from=builder --chown="${NB_UID}:${NB_GID}" /usr/local/flink-1.19.0/ /usr/local/flink-1.19.0/
COPY --from=builder --chown="${NB_UID}:${NB_GID}" /usr/local/flink-1.20.0/ /usr/local/flink-1.20.0/
RUN apt-get update --yes && \
apt-get install --yes --no-install-recommends openjdk-17-jre-headless ca-certificates-java && apt-get clean && rm -rf /var/lib/apt/lists/* && \
ln -s "flink-1.19.0" "/usr/local/flink"
ln -s "flink-1.20.0" "/usr/local/flink"
USER ${NB_UID}

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:novnc
FROM eoelab.org:1027/ben0i0d/jupyter:novnc
# Combine ENV statements
ENV LIBGL_ALWAYS_INDIRECT=1 \

View File

@ -1,14 +1,14 @@
FROM docker.io/ben0i0d/jupyter:py-c AS builder
FROM eoelab.org:1027/ben0i0d/jupyter:py-c AS builder
USER root
# You need to use https://archive.apache.org/dist/ website if you want to download old Spark versions
# But it seems to be slower, that's why we use recommended site for download
RUN apt-get update --yes && apt-get install --yes --no-install-recommends wget && \
apt-get clean && rm -rf /var/lib/apt/lists/* && \
wget -qO "spark.tgz" "https://mirrors.ustc.edu.cn/apache/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tgz" && \
wget -qO "spark.tgz" "https://mirrors.ustc.edu.cn/apache/spark/spark-3.5.3/spark-3.5.3-bin-hadoop3.tgz" && \
tar xzf "spark.tgz" -C /usr/local --no-same-owner && rm "spark.tgz"
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoelab.org:1027/ben0i0d/jupyter:py-c
USER root
@ -19,11 +19,11 @@ ENV SPARK_OPTS="--driver-java-options=-Xms1024M --driver-java-options=-Xmx4096M
# Configure IPython system-wide
COPY ipython_kernel_config.py "/etc/ipython/"
COPY --chown="root:root" --from=builder /usr/local/spark-3.5.1-bin-hadoop3/ /usr/local/spark-3.5.1-bin-hadoop3/
COPY --chown="root:root" --from=builder /usr/local/spark-3.5.3-bin-hadoop3/ /usr/local/spark-3.5.3-bin-hadoop3/
RUN apt-get update --yes && \
apt-get install --yes --no-install-recommends openjdk-17-jre-headless ca-certificates-java && apt-get clean && rm -rf /var/lib/apt/lists/* && \
ln -s "spark-3.5.1-bin-hadoop3" "/usr/local/spark" && \
ln -s "spark-3.5.3-bin-hadoop3" "/usr/local/spark" && \
# Add a link in the before_notebook hook in order to source automatically PYTHONPATH
mkdir -p /usr/local/bin/before-notebook.d && \
ln -s "/usr/local/spark/sbin/spark-config.sh" /usr/local/bin/before-notebook.d/spark-config.sh

View File

@ -13,8 +13,7 @@ ENV DEBIAN_FRONTEND=noninteractive \
HOME="/home/jovyan"
# Copy files
COPY cert/cert.pem /usr/local/share/ca-certificates/eoelab.org.crt
COPY conf/pip.conf conf/profile /etc/
COPY conf/profile /etc/
COPY start-sh/* /usr/local/bin/
COPY conf/jupyter_server_config.py /etc/jupyter/
@ -26,7 +25,8 @@ RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debi
usermod -aG sudo "${NB_USER}" && echo "${NB_USER} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \
mkdir -p "/opt/base/" && python3 -m venv /opt/base && chown -hR "${NB_USER}:${NB_GID}" "/opt/base" && \
chmod g+w /etc/passwd && \
mkdir /usr/local/bin/start-notebook.d && mkdir /usr/local/bin/before-notebook.d
mkdir /usr/local/bin/start-notebook.d && mkdir /usr/local/bin/before-notebook.d && \
echo '[global]\nindex-url = https://mirrors.bfsu.edu.cn/pypi/web/simple' > /etc/pip.conf
USER ${NB_UID}

View File

@ -1,24 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIEFjCCAv6gAwIBAgISA/QR6+r+qZqbPeKWymC2VIWZMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMzEwMzAwOTE3MDBaFw0yNDAxMjgwOTE2NTlaMBUxEzARBgNVBAMT
CmVvZWxhYi5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATxTn510qZDXR/M
407/klamsiezss1imkPQb14lAaIIoCmRBvNY+d0phYGbZVMXmsNVWiffHKl8h47U
eXbkeXAzo4ICDDCCAggwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUF
BwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQuOf5u46dHUhib
qq46J0ln4SNM2DAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTCxjBVBggr
BgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNyLm9yZzAi
BggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAVBgNVHREEDjAMggpl
b2VsYWIub3JnMBMGA1UdIAQMMAowCAYGZ4EMAQIBMIIBBAYKKwYBBAHWeQIEAgSB
9QSB8gDwAHYAO1N3dT4tuYBOizBbBv5AO2fYT8P0x70ADS1yb+H61BcAAAGLgBYy
QwAABAMARzBFAiAQBsK6jhexd3UKR91TvV8huicumg8hYmtYwEDNiAIUwQIhAPqW
BLXwNPItxuAmBWpDuP73FsZkjufD1d9clFk7oW4jAHYA7s3QZNXbGs7FXLedtM0T
ojKHRny87N7DUUhZRnEftZsAAAGLgBYyQAAABAMARzBFAiBNKBL8obiYPP+K28sL
dO35J42slhpHegIujq8wOiXPdAIhAPLs0qscCxyfxW760xFH/RPJbVP6cthEUfA9
l56Sn6dbMA0GCSqGSIb3DQEBCwUAA4IBAQB/4sMOCngPhR26Ywd7+LiCis2JeOv5
YKhT/3TvzhyUj9oba4YROLm2unTKounqVAqclQDgQHkb7RmpfmkvpI8To3JeTmLR
2akmOZ8FIviRtAuw3lZ0w6Qs0UWRFAbIeOlJhWTiUJemNklWnUdRLeDR1hKMzDfv
U1d6yvXoUUuFIhBALNzrdIbTb6Lk6J1ULk8LJlBX4nHlnSrQGlw7/8Baop2cdirD
vCquiZDS+MmBS/1Ugr1/B8egRuvzOQ74fyA1Z1T3FDVKgguMetY3MxcXuqvdLanT
M23076OmVaHJq6YJAEfYUfZ3zFHC55hI1Tl7TPSghVBn3oE2H11n+lzt
-----END CERTIFICATE-----

View File

@ -1,3 +0,0 @@
[global]
index-url = https://mirrors.bfsu.edu.cn/pypi/web/simple

View File

@ -1,4 +1,4 @@
FROM ben0i0d/cuda:12.2.0-devel-debian12
FROM debian:bookworm-slim
EXPOSE 8888
@ -13,8 +13,7 @@ ENV DEBIAN_FRONTEND=noninteractive \
HOME="/home/jovyan"
# Copy files
COPY cert/cert.pem /usr/local/share/ca-certificates/eoelab.org.crt
COPY conf/pip.conf conf/profile /etc/
COPY conf/profile /etc/
COPY start-sh/* /usr/local/bin/
COPY conf/jupyter_server_config.py /etc/jupyter/
@ -26,7 +25,8 @@ RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debi
usermod -aG sudo "${NB_USER}" && echo "${NB_USER} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \
mkdir -p "/opt/base/" && python3 -m venv /opt/base && chown -hR "${NB_USER}:${NB_GID}" "/opt/base" && \
chmod g+w /etc/passwd && \
mkdir /usr/local/bin/start-notebook.d && mkdir /usr/local/bin/before-notebook.d
mkdir /usr/local/bin/start-notebook.d && mkdir /usr/local/bin/before-notebook.d && \
echo '[global]\nindex-url = https://mirrors.bfsu.edu.cn/pypi/web/simple' > /etc/pip.conf
USER ${NB_UID}

View File

@ -1,24 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIEFjCCAv6gAwIBAgISA/QR6+r+qZqbPeKWymC2VIWZMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMzEwMzAwOTE3MDBaFw0yNDAxMjgwOTE2NTlaMBUxEzARBgNVBAMT
CmVvZWxhYi5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATxTn510qZDXR/M
407/klamsiezss1imkPQb14lAaIIoCmRBvNY+d0phYGbZVMXmsNVWiffHKl8h47U
eXbkeXAzo4ICDDCCAggwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUF
BwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQuOf5u46dHUhib
qq46J0ln4SNM2DAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTCxjBVBggr
BgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNyLm9yZzAi
BggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAVBgNVHREEDjAMggpl
b2VsYWIub3JnMBMGA1UdIAQMMAowCAYGZ4EMAQIBMIIBBAYKKwYBBAHWeQIEAgSB
9QSB8gDwAHYAO1N3dT4tuYBOizBbBv5AO2fYT8P0x70ADS1yb+H61BcAAAGLgBYy
QwAABAMARzBFAiAQBsK6jhexd3UKR91TvV8huicumg8hYmtYwEDNiAIUwQIhAPqW
BLXwNPItxuAmBWpDuP73FsZkjufD1d9clFk7oW4jAHYA7s3QZNXbGs7FXLedtM0T
ojKHRny87N7DUUhZRnEftZsAAAGLgBYyQAAABAMARzBFAiBNKBL8obiYPP+K28sL
dO35J42slhpHegIujq8wOiXPdAIhAPLs0qscCxyfxW760xFH/RPJbVP6cthEUfA9
l56Sn6dbMA0GCSqGSIb3DQEBCwUAA4IBAQB/4sMOCngPhR26Ywd7+LiCis2JeOv5
YKhT/3TvzhyUj9oba4YROLm2unTKounqVAqclQDgQHkb7RmpfmkvpI8To3JeTmLR
2akmOZ8FIviRtAuw3lZ0w6Qs0UWRFAbIeOlJhWTiUJemNklWnUdRLeDR1hKMzDfv
U1d6yvXoUUuFIhBALNzrdIbTb6Lk6J1ULk8LJlBX4nHlnSrQGlw7/8Baop2cdirD
vCquiZDS+MmBS/1Ugr1/B8egRuvzOQ74fyA1Z1T3FDVKgguMetY3MxcXuqvdLanT
M23076OmVaHJq6YJAEfYUfZ3zFHC55hI1Tl7TPSghVBn3oE2H11n+lzt
-----END CERTIFICATE-----

View File

@ -1,3 +0,0 @@
[global]
index-url = https://mirrors.bfsu.edu.cn/pypi/web/simple

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoelab.org:1027/ben0i0d/jupyter:py-c
USER root

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoelab.org:1027/ben0i0d/jupyter:py-c
ENV BASE_DIR=/opt/base

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoelab.org:1027/ben0i0d/jupyter:py-c
USER root

View File

@ -1,12 +1,12 @@
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoelab.org:1027/ben0i0d/jupyter:py-c
# Install Python 3 packages
RUN pip install \
# Data analysis and visualization
'pandas' 'matplotlib' \
'matplotlib' \
# Machine learning and data mining
'scikit-learn' \
'duckdb' \
# Scientific calculations and statistical analysis
'scipy' 'numpy' &&\
'numpy' &&\
pip cache purge && \
MPLBACKEND=Agg python -c "import matplotlib.pyplot"

View File

@ -1,12 +1,12 @@
FROM docker.io/ben0i0d/jupyter:py-g
FROM eoelab.org:1027/ben0i0d/jupyter:py-g
# Install Python 3 packages
RUN pip install \
RUN pip install \
# Data analysis and visualization
'pandas' 'matplotlib' \
'matplotlib' \
# Machine learning and data mining
'scikit-learn' \
'duckdb' \
# Scientific calculations and statistical analysis
'scipy' 'numpy' &&\
pip cache purge && \
'numpy' &&\
pip cache purge && \
MPLBACKEND=Agg python -c "import matplotlib.pyplot"

View File

@ -1,4 +1,4 @@
FROM docker.io/ben0i0d/jupyter:py-c
FROM eoelab.org:1027/ben0i0d/jupyter:py-c
USER root