renku/renkulab-pyRenkuLab Docker镜像包含启动JupyterLab、RStudio等交互式环境所需的最小依赖,且每个镜像均内置renku CLI。
这些镜像可在DockerHub获取,并通过GitHub Actions从本仓库自动构建(详见.github文件夹)。
镜像会不定期更新,我们会尽量保持其与最新的Python版本、CUDA/Torch版本及R版本同步。通常通过更新GitHub Actions以包含新版本,并修改Makefile来调整默认构建内容。
基础Python(renkulab-py)、基础R(renkulab-r)和基础Julia(renkulab-julia)镜像用于Renku项目模板,用户在RenkuLab平台创建项目或通过本地renku init初始化项目时可选择这些模板。
若需使用项目模板未涵盖的本仓库构建镜像,需按以下步骤操作:
FROM行中,将镜像替换为从本仓库构建的镜像。请参见“命名约定”以选择合适的镜像如需为现有镜像添加启动RenkuLab交互式环境的能力,请参见下文“为自有镜像添加renku支持”部分。
容器启动时可能需要执行某些操作以准备环境。基础镜像的entrypoint.sh脚本已包含部分初始化操作,若扩展镜像,可通过在容器根目录添加post-init.sh脚本来添加自定义初始化步骤。该脚本必须允许非特权用户执行,因为它将以容器的用户权限运行。
使用基础镜像的项目还可在项目根目录放置post-init.sh脚本,该脚本将在/entrypoint.sh和/post-init.sh(容器级)之后执行。
基础镜像位于DockerHub的renku/renkulab-*仓库(*表示“类型”,即编程语言或基础镜像)。命名格式如下,帮助选择合适的镜像:
renku/renkulab-[镜像类型]:[镜像类型版本]-[标签|哈希]
示例:renku/renkulab-py:3.10-0.15.0
renku/renkulab:标识该镜像可用于在RenkuLab平台从项目启动环境-py:表示Python镜像类型,即环境中安装的编程语言或添加额外依赖的基础镜像。详见下文“当前镜像”了解可用类型3.10:表示Python版本为3.100.15.0(或d572e9a):标签是仓库提交的标识,若属于发布版本则为版本号;若非发布版本,则为构建镜像所用Git提交SHA的前几位字符注意:基础镜像包含最新版本的renku CLI,可通过修改项目Dockerfile中的renku版本轻松覆盖。
| 镜像 | 描述 | 基础镜像 |
|---|---|---|
| renku/renkulab-py | 含最小依赖的Jupyter镜像 | jupyter/base-notebook |
| renku/renkulab-r | RStudio镜像 | rocker/verse |
| renku/renkulab-julia | Julia镜像 | renku/renkulab-py |
| renku/renkulab-cuda | 含Python和最小依赖的CUDA镜像 | renku/renkulab-py |
| renku/renkulab-cuda-tf | 含Python和Tensorflow的CUDA镜像 | renku/renkulab-cuda |
| renku/renkulab-vnc | 含Python的VNC镜像 | renku/renkulab-py |
| renku/renkulab-matlab | 含Matlab的VNC镜像 | renku/renkulab-py |
| renku/renkulab-qgis | 含QGIS的VNC镜像 | renku/renkulab-py |
更多已发布镜像的详细列表及DockerHub链接,请参见发布说明。
可通过Renku项目模板获取
含最小依赖的基础Jupyter镜像,基于jupyter/base-notebook。
DockerHub:[***]
可通过Renku项目模板获取
基于rocker "verse"镜像:rocker/verse,该镜像提供比conda更新的R版本,并包含R用户常用的大部分软件依赖。同时包含R Jupyter内核和RStudio。访问RStudio只需将URL中的/lab或/tree替换为/rstudio。
DockerHub:[***]
可通过Renku项目模板获取
基于renku/renkulab-py镜像,已安装Julia。
DockerHub:[***]
基于renku/renkulab-py镜像,包含不同版本的Python和CUDA。
DockerHub:[***]
基于renku/renkulab-py镜像,包含完整虚拟桌面。使用noVNC 1.1.0和TigerVNC 1.9.0,并通过Renku UI提供Linux桌面环境。
[***]
包含上述完整虚拟桌面环境,并已安装Matlab。
[***]
包含上述完整虚拟桌面环境,并已安装QGIS。
[***]
make构建镜像本目录提供Makefile用于本地构建镜像。可通过make all构建所有镜像,或按需构建单个镜像。同时提供推送(push)和拉取(pull)镜像的make目标。
docker构建镜像有时可能需要直接使用docker构建单个镜像:在目标镜像目录中运行docker build -t <名称:标签> .即可。注意,在ARM架构系统(如Apple M1/M2)上,由于部分基础镜像不支持ARM架构,可能需要添加--platform=linux/amd64标志。
从0.16.0版本开始,Python基础镜像支持X86_64和arm64双架构。如需本地构建多架构镜像,可使用make:
$ PLATFORM=linux/amd64,linux/arm64 USE_BUILDX=1 make py
或直接使用buildx命令:
$ docker buildx build \ --platform linux/amd64,linux/arm64 \ --tag myimage:tag \ --push \ docker/py
注意:目前仅Python镜像提供arm64支持。
若您已有包含复杂依赖的Docker镜像,可通过以下方式将其部署到RenkuLab:使用我们的镜像作为基础进行构建。我们提供两个通用镜像,一个适用于通用场景,另一个专用于rocker基础镜像。
假设您的Dockerfile位于当前目录,可通过以下命令将renkulab依赖构建到您的镜像中:
docker build -t <镜像标签> \ --build-arg BASE_IMAGE=<您的基础镜像> \ [***]
其中<镜像标签>是您要使用的镜像名称/标签,<您的基础镜像>是您现有的镜像。
若您的镜像基于rocker R发行版,可执行:
docker build -t <镜像标签> \ --build-arg BASE_IMAGE=<您的基础镜像> \ [***]
如需建议添加其他语言或基础镜像,欢迎提交issue或PR到本仓库。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务