广告图片

ghcr.io/hkuds/deeptutor:1.1.2 linux/amd64

ghcr.io/hkuds/deeptutor:1.1.2 - 国内下载镜像源 浏览次数:16

这是一个用于深度学习辅导的Docker镜像,提供相关的教学资源和工具,帮助用户学习深度学习相关知识和技能。

源镜像 ghcr.io/hkuds/deeptutor:1.1.2
国内镜像 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.1.2
镜像ID sha256:566cf0fb1943f08d2134f9544b85906a2c2bfb91b636d1d1ac931fedc648eb40
镜像TAG 1.1.2
大小 1.08GB
镜像源 ghcr.io
CMD
启动入口 /app/entrypoint.sh
工作目录 /app
OS/平台 linux/amd64
浏览量 16 次
贡献者
镜像创建 2026-04-18T03:45:32.064280959Z
同步时间 2026-04-20 10:56
开放端口
3782/tcp 8001/tcp
环境变量
PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin LANG=C.UTF-8 GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D PYTHON_VERSION=3.11.15 PYTHON_SHA256=272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625 PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PYTHONIOENCODING=utf-8 NODE_ENV=production BACKEND_PORT=8001 FRONTEND_PORT=3782
镜像标签
DeepTutor: AI-Powered Personalized Learning Assistant: description DeepTutor Team: maintainer 2026-04-18T03:43:24.309Z: org.opencontainers.image.created "DeepTutor: Agent-Native Personalized Learning Assistant": org.opencontainers.image.description Apache-2.0: org.opencontainers.image.licenses 79d830617a3a752f5c8fb06d351dd353f15c3475: org.opencontainers.image.revision https://github.com/HKUDS/DeepTutor: org.opencontainers.image.source DeepTutor: org.opencontainers.image.title https://github.com/HKUDS/DeepTutor: org.opencontainers.image.url 1.1.2: org.opencontainers.image.version 1.0.0: version

Docker拉取命令

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.1.2
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.1.2  ghcr.io/hkuds/deeptutor:1.1.2

Containerd拉取命令

ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.1.2
ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.1.2  ghcr.io/hkuds/deeptutor:1.1.2

Shell快速替换命令

sed -i 's#ghcr.io/hkuds/deeptutor:1.1.2#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.1.2#' deployment.yaml

Ansible快速分发-Docker

#ansible k8s -m shell -a 'docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.1.2 && docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.1.2  ghcr.io/hkuds/deeptutor:1.1.2'

Ansible快速分发-Containerd

#ansible k8s -m shell -a 'ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.1.2 && ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.1.2  ghcr.io/hkuds/deeptutor:1.1.2'

镜像构建历史


# 2026-04-18 11:45:32  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/app/entrypoint.sh"]
                        
# 2026-04-18 11:45:32  0.00B 指定检查容器健康状态的命令
HEALTHCHECK &{["CMD-SHELL" "curl -f http://localhost:${BACKEND_PORT:-8001}/ || exit 1"] "30s" "10s" "1m0s" "0s" '\x03'}
                        
# 2026-04-18 11:45:32  0.00B 声明容器运行时监听的端口
EXPOSE [3782/tcp 8001/tcp]
                        
# 2026-04-18 11:45:32  1.45KB 执行命令并创建新的镜像层
RUN /bin/sh -c sed -i 's/\r$//' /app/entrypoint.sh && chmod +x /app/entrypoint.sh # buildkit
                        
# 2026-04-18 11:45:31  1.45KB 执行命令并创建新的镜像层
RUN /bin/sh -c cat > /app/entrypoint.sh <<'EOF'
#!/bin/bash
set -e

echo "============================================"
echo "🚀 Starting DeepTutor"
echo "============================================"

# Set default ports if not provided
export BACKEND_PORT=${BACKEND_PORT:-8001}
export FRONTEND_PORT=${FRONTEND_PORT:-3782}

echo "📌 Backend Port: ${BACKEND_PORT}"
echo "📌 Frontend Port: ${FRONTEND_PORT}"

# Check for required environment variables
if [ -z "$LLM_API_KEY" ]; then
    echo "⚠️  Warning: LLM_API_KEY not set"
    echo "   Please provide LLM configuration via environment variables or .env file"
fi

if [ -z "$LLM_MODEL" ]; then
    echo "⚠️  Warning: LLM_MODEL not set"
    echo "   Please configure LLM_MODEL in your .env file"
fi

# Initialize user data directories if empty
echo "📁 Checking data directories..."
echo "   Ensuring runtime settings and workspace layout..."
python -c "
from pathlib import Path
from deeptutor.services.setup import init_user_directories
init_user_directories(Path('/app'))
" 2>/dev/null || echo "   ⚠️ Directory initialization skipped (will be created on first use)"

echo "============================================"
echo "📦 Configuration loaded from:"
echo "   - Environment variables (.env file)"
echo "   - data/user/settings/main.yaml"
echo "   - data/user/settings/agents.yaml"
echo "============================================"

# Start supervisord
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/deeptutor.conf
EOF # buildkit
                        
# 2026-04-18 11:45:31  1.67KB 执行命令并创建新的镜像层
RUN /bin/sh -c sed -i 's/\r$//' /app/start-frontend.sh && chmod +x /app/start-frontend.sh # buildkit
                        
# 2026-04-18 11:45:31  1.67KB 执行命令并创建新的镜像层
RUN /bin/sh -c cat > /app/start-frontend.sh <<'EOF'
#!/bin/bash
set -e

# Get the backend port (default to 8001)
BACKEND_PORT=${BACKEND_PORT:-8001}
FRONTEND_PORT=${FRONTEND_PORT:-3782}

# Determine the API base URL with multiple fallback options
# Priority: NEXT_PUBLIC_API_BASE_EXTERNAL > NEXT_PUBLIC_API_BASE > auto-detect
if [ -n "$NEXT_PUBLIC_API_BASE_EXTERNAL" ]; then
    # Explicit external URL for cloud deployments
    API_BASE="$NEXT_PUBLIC_API_BASE_EXTERNAL"
    echo "[Frontend] 📌 Using external API URL: ${API_BASE}"
elif [ -n "$NEXT_PUBLIC_API_BASE" ]; then
    # Custom API base URL
    API_BASE="$NEXT_PUBLIC_API_BASE"
    echo "[Frontend] 📌 Using custom API URL: ${API_BASE}"
else
    # Default: localhost with configured backend port
    # Note: This only works for local development, not cloud deployments
    API_BASE="http://localhost:${BACKEND_PORT}"
    echo "[Frontend] 📌 Using default API URL: ${API_BASE}"
    echo "[Frontend] ⚠️  For cloud deployment, set NEXT_PUBLIC_API_BASE_EXTERNAL to your server's public URL"
    echo "[Frontend]    Example: -e NEXT_PUBLIC_API_BASE_EXTERNAL=https://your-server.com:${BACKEND_PORT}"
fi

echo "[Frontend] 🚀 Starting Next.js frontend on port ${FRONTEND_PORT}..."

# Replace placeholder in built Next.js files
# This is necessary because NEXT_PUBLIC_* vars are inlined at build time
find /app/web/.next -type f \( -name "*.js" -o -name "*.json" \) -exec \
    sed -i "s|__NEXT_PUBLIC_API_BASE_PLACEHOLDER__|${API_BASE}|g" {} \; 2>/dev/null || true

# Start Next.js standalone server
# The standalone server reads PORT and HOSTNAME from environment variables
export PORT=${FRONTEND_PORT}
export HOSTNAME=0.0.0.0
exec node /app/web/server.js
EOF # buildkit
                        
# 2026-04-18 11:45:31  387.00B 执行命令并创建新的镜像层
RUN /bin/sh -c sed -i 's/\r$//' /app/start-backend.sh && chmod +x /app/start-backend.sh # buildkit
                        
# 2026-04-18 11:45:31  387.00B 执行命令并创建新的镜像层
RUN /bin/sh -c cat > /app/start-backend.sh <<'EOF'
#!/bin/bash
set -e

BACKEND_PORT=${BACKEND_PORT:-8001}

echo "[Backend]  🚀 Starting FastAPI backend on port ${BACKEND_PORT}..."

# Run uvicorn directly - the application's logging system already handles:
# 1. Console output (visible in docker logs)
# 2. File logging to data/user/logs/ai_tutor_*.log
exec python -m uvicorn deeptutor.api.main:app --host 0.0.0.0 --port ${BACKEND_PORT}
EOF # buildkit
                        
# 2026-04-18 11:45:31  617.00B 执行命令并创建新的镜像层
RUN /bin/sh -c sed -i 's/\r$//' /etc/supervisor/conf.d/deeptutor.conf # buildkit
                        
# 2026-04-18 11:45:31  617.00B 执行命令并创建新的镜像层
RUN /bin/sh -c cat > /etc/supervisor/conf.d/deeptutor.conf <<'EOF'
[supervisord]
nodaemon=true
logfile=/dev/null
logfile_maxbytes=0
pidfile=/var/run/supervisord.pid

[program:backend]
command=/bin/bash /app/start-backend.sh
directory=/app
autostart=true
autorestart=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
stderr_logfile=/dev/fd/2
stderr_logfile_maxbytes=0
environment=PYTHONPATH="/app",PYTHONUNBUFFERED="1"

[program:frontend]
command=/bin/bash /app/start-frontend.sh
directory=/app/web
autostart=true
autorestart=true
startsecs=5
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
stderr_logfile=/dev/fd/2
stderr_logfile_maxbytes=0
environment=NODE_ENV="production"
EOF # buildkit
                        
# 2026-04-18 11:45:31  0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c mkdir -p /etc/supervisor/conf.d # buildkit
                        
# 2026-04-18 11:45:31  0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c mkdir -p     data/user/settings     data/memory     data/user/workspace/memory     data/user/workspace/notebook     data/user/workspace/co-writer/audio     data/user/workspace/co-writer/tool_calls     data/user/workspace/guide     data/user/workspace/chat/chat     data/user/workspace/chat/deep_solve     data/user/workspace/chat/deep_question     data/user/workspace/chat/deep_research/reports     data/user/workspace/chat/math_animator     data/user/workspace/chat/_detached_code_execution     data/user/logs     data/knowledge_bases # buildkit
                        
# 2026-04-18 11:45:31  592.00B 复制新文件或目录到容器中
COPY requirements.txt ./ # buildkit
                        
# 2026-04-18 11:45:31  3.09KB 复制新文件或目录到容器中
COPY requirements/ ./requirements/ # buildkit
                        
# 2026-04-18 11:45:31  7.95KB 复制新文件或目录到容器中
COPY pyproject.toml ./ # buildkit
                        
# 2026-04-18 11:45:31  118.77KB 复制新文件或目录到容器中
COPY scripts/ ./scripts/ # buildkit
                        
# 2026-04-18 11:45:31  56.29KB 复制新文件或目录到容器中
COPY deeptutor_cli/ ./deeptutor_cli/ # buildkit
                        
# 2026-04-18 11:45:31  3.04MB 复制新文件或目录到容器中
COPY deeptutor/ ./deeptutor/ # buildkit
                        
# 2026-04-18 11:45:31  219.54KB 复制新文件或目录到容器中
COPY /app/web/public/ ./web/public/ # buildkit
                        
# 2026-04-18 11:45:31  7.28MB 复制新文件或目录到容器中
COPY /app/web/.next/static/ ./web/.next/static/ # buildkit
                        
# 2026-04-18 11:45:31  51.92MB 复制新文件或目录到容器中
COPY /app/web/.next/standalone/ ./web/ # buildkit
                        
# 2026-04-18 11:45:30  5.30KB 复制新文件或目录到容器中
COPY /usr/local/bin /usr/local/bin # buildkit
                        
# 2026-04-18 11:45:30  493.52MB 复制新文件或目录到容器中
COPY /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages # buildkit
                        
# 2026-04-18 11:44:05  236.94KB 执行命令并创建新的镜像层
RUN /bin/sh -c ln -sf /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm     && ln -sf /usr/local/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx     && node --version && npm --version # buildkit
                        
# 2026-04-18 11:44:05  11.94MB 复制新文件或目录到容器中
COPY /usr/local/lib/node_modules /usr/local/lib/node_modules # buildkit
                        
# 2026-04-18 11:44:04  124.68MB 复制新文件或目录到容器中
COPY /usr/local/bin/node /usr/local/bin/node # buildkit
                        
# 2026-04-18 11:44:04  266.25MB 执行命令并创建新的镜像层
RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends     curl     ca-certificates     bash     supervisor     libgl1     libglib2.0-0     libsm6     libxext6     libxrender1     && rm -rf /var/lib/apt/lists/* # buildkit
                        
# 2026-04-18 11:43:30  0.00B 设置工作目录为/app
WORKDIR /app
                        
# 2026-04-18 11:43:30  0.00B 设置环境变量 PYTHONDONTWRITEBYTECODE PYTHONUNBUFFERED PYTHONIOENCODING NODE_ENV BACKEND_PORT FRONTEND_PORT
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PYTHONIOENCODING=utf-8 NODE_ENV=production BACKEND_PORT=8001 FRONTEND_PORT=3782
                        
# 2026-04-18 11:43:30  0.00B 添加元数据标签
LABEL maintainer=DeepTutor Team description=DeepTutor: AI-Powered Personalized Learning Assistant version=1.0.0
                        
# 2026-04-07 10:27:00  0.00B 设置默认要执行的命令
CMD ["python3"]
                        
# 2026-04-07 10:27:00  36.00B 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; 	for src in idle3 pip3 pydoc3 python3 python3-config; do 		dst="$(echo "$src" | tr -d 3)"; 		[ -s "/usr/local/bin/$src" ]; 		[ ! -e "/usr/local/bin/$dst" ]; 		ln -svT "$src" "/usr/local/bin/$dst"; 	done # buildkit
                        
# 2026-04-07 10:27:00  42.05MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; 		savedAptMark="$(apt-mark showmanual)"; 	apt-get update; 	apt-get install -y --no-install-recommends 		dpkg-dev 		gcc 		gnupg 		libbluetooth-dev 		libbz2-dev 		libc6-dev 		libdb-dev 		libffi-dev 		libgdbm-dev 		liblzma-dev 		libncursesw5-dev 		libreadline-dev 		libsqlite3-dev 		libssl-dev 		make 		tk-dev 		uuid-dev 		wget 		xz-utils 		zlib1g-dev 	; 		wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; 	echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; 	wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; 	GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; 	gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; 	gpg --batch --verify python.tar.xz.asc python.tar.xz; 	gpgconf --kill all; 	rm -rf "$GNUPGHOME" python.tar.xz.asc; 	mkdir -p /usr/src/python; 	tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; 	rm python.tar.xz; 		cd /usr/src/python; 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; 	./configure 		--build="$gnuArch" 		--enable-loadable-sqlite-extensions 		--enable-optimizations 		--enable-option-checking=fatal 		--enable-shared 		$(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') 		--with-ensurepip 	; 	nproc="$(nproc)"; 	EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; 	LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; 	LDFLAGS="${LDFLAGS:-} -Wl,--strip-all"; 	make -j "$nproc" 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" 		"LDFLAGS=${LDFLAGS:-}" 	; 	rm python; 	make -j "$nproc" 		"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" 		"LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\$\$ORIGIN/../lib'" 		python 	; 	make install; 		cd /; 	rm -rf /usr/src/python; 		find /usr/local -depth 		\( 			\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) 			-o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) 		\) -exec rm -rf '{}' + 	; 		ldconfig; 		apt-mark auto '.*' > /dev/null; 	apt-mark manual $savedAptMark; 	find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' 		| awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' 		| sort -u 		| xargs -rt dpkg-query --search 		| awk 'sub(":$", "", $1) { print $1 }' 		| sort -u 		| xargs -r apt-mark manual 	; 	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; 	apt-get dist-clean; 		export PYTHONDONTWRITEBYTECODE=1; 	python3 --version; 		pip3 install 		--disable-pip-version-check 		--no-cache-dir 		--no-compile 		'setuptools==79.0.1' 		'wheel<0.46' 	; 	pip3 --version # buildkit
                        
# 2026-04-07 10:18:53  0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625
                        
# 2026-04-07 10:18:53  0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.11.15
                        
# 2026-04-07 10:18:53  0.00B 设置环境变量 GPG_KEY
ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D
                        
# 2026-04-07 10:18:53  3.81MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; 	apt-get update; 	apt-get install -y --no-install-recommends 		ca-certificates 		netbase 		tzdata 	; 	apt-get dist-clean # buildkit
                        
# 2026-04-07 10:18:53  0.00B 设置环境变量 LANG
ENV LANG=C.UTF-8
                        
# 2026-04-07 10:18:53  0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
                        
# 2026-04-06 08:00:00  78.61MB 
# debian.sh --arch 'amd64' out/ 'trixie' '@1775433600'
                        
                    

镜像信息

{
    "Id": "sha256:566cf0fb1943f08d2134f9544b85906a2c2bfb91b636d1d1ac931fedc648eb40",
    "RepoTags": [
        "ghcr.io/hkuds/deeptutor:1.1.2",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.1.2"
    ],
    "RepoDigests": [
        "ghcr.io/hkuds/deeptutor@sha256:7ebe9ec104819e7ba67f5512ac667997ade5b3efb8685355af81c9a4c759b162",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor@sha256:f2e9da8bcdb853e59af4c27c71378028f5f5116396418a0d0b142858b2ede1e2"
    ],
    "Parent": "",
    "Comment": "buildkit.dockerfile.v0",
    "Created": "2026-04-18T03:45:32.064280959Z",
    "Container": "",
    "ContainerConfig": null,
    "DockerVersion": "",
    "Author": "",
    "Config": {
        "Hostname": "",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "ExposedPorts": {
            "3782/tcp": {},
            "8001/tcp": {}
        },
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "LANG=C.UTF-8",
            "GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D",
            "PYTHON_VERSION=3.11.15",
            "PYTHON_SHA256=272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625",
            "PYTHONDONTWRITEBYTECODE=1",
            "PYTHONUNBUFFERED=1",
            "PYTHONIOENCODING=utf-8",
            "NODE_ENV=production",
            "BACKEND_PORT=8001",
            "FRONTEND_PORT=3782"
        ],
        "Cmd": null,
        "Healthcheck": {
            "Test": [
                "CMD-SHELL",
                "curl -f http://localhost:${BACKEND_PORT:-8001}/ || exit 1"
            ],
            "Interval": 30000000000,
            "Timeout": 10000000000,
            "StartPeriod": 60000000000,
            "Retries": 3
        },
        "Image": "",
        "Volumes": null,
        "WorkingDir": "/app",
        "Entrypoint": [
            "/app/entrypoint.sh"
        ],
        "OnBuild": null,
        "Labels": {
            "description": "DeepTutor: AI-Powered Personalized Learning Assistant",
            "maintainer": "DeepTutor Team",
            "org.opencontainers.image.created": "2026-04-18T03:43:24.309Z",
            "org.opencontainers.image.description": "\"DeepTutor: Agent-Native Personalized Learning Assistant\"",
            "org.opencontainers.image.licenses": "Apache-2.0",
            "org.opencontainers.image.revision": "79d830617a3a752f5c8fb06d351dd353f15c3475",
            "org.opencontainers.image.source": "https://github.com/HKUDS/DeepTutor",
            "org.opencontainers.image.title": "DeepTutor",
            "org.opencontainers.image.url": "https://github.com/HKUDS/DeepTutor",
            "org.opencontainers.image.version": "1.1.2",
            "version": "1.0.0"
        }
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Size": 1083755729,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/9695034dabeb5b85820f320a3a2a28a821d1c083beb5dad26b887c365a2aacb0/diff:/var/lib/docker/overlay2/7a3a2ba613f1cd875e630644e5aa0ccb08f2b356a1230d04e301768861fc2c52/diff:/var/lib/docker/overlay2/df6866336faed064acc5ff112c85b47399d3bdcac574ed326eb004a7e7f16473/diff:/var/lib/docker/overlay2/239812f2db3932996589b56d39a8c79c161730c2d044d1ce9b0c355514a971a9/diff:/var/lib/docker/overlay2/15120cd1ec8e8cb0da0a6cd3c16036ad3f4c60d6e9d580ecadf5b19bf6d3e304/diff:/var/lib/docker/overlay2/18af74546034decba8395e75ed8061669e2be2f8c2b7a62c849b610250c1814f/diff:/var/lib/docker/overlay2/ca552a44ad76c27593e0e69afea3729fa11d63b5c1dd1f21cad059ee3556f0fe/diff:/var/lib/docker/overlay2/cd613479dd93dc527ed3294cb615387e2fb231c2cbed94a4431f79cc8d0951c4/diff:/var/lib/docker/overlay2/887343746a5e5fa1f7aeb328968d3a77f9ba2f1e63135f852db2022e2be205dd/diff:/var/lib/docker/overlay2/4dd2ab3605deeb6cbe622eb44d04ad203fd82bf95f76f9fa5297f8730e9188da/diff:/var/lib/docker/overlay2/a078951393bd71f9aa37b7e10446b8180bc82a59e170b3b8c311f1d4da491f84/diff:/var/lib/docker/overlay2/42dd394a604e083cdf8ee4ba21065c9b20adcbb0580ee79b871725e7a70bca43/diff:/var/lib/docker/overlay2/1df88094858b8af83fd4fb496551839fb166612d17dcca75d9b88efcd1171f1c/diff:/var/lib/docker/overlay2/874c6e6343a4806ee14c9d924a315226b14e674a662905a5f804265f96c885cb/diff:/var/lib/docker/overlay2/386047156c5878ec16a8aea55605b04e4a5087e43e008f37c6c328d967372e82/diff:/var/lib/docker/overlay2/df314a5ba248dd9d16cc0ea58df8d853a9ff42103c4016bd845074edf83cc448/diff:/var/lib/docker/overlay2/7231e16b1848e0829b4541a64d2f5507649bfdd49d722597e071131538afa822/diff:/var/lib/docker/overlay2/a35eb0149575043912eab5eba9da062a41d41cf26783ed30a40b55fe59a628de/diff:/var/lib/docker/overlay2/f0e412d2978c13c6b84cf15b7746899bcdbb6b9f3133a1e14004b79233c691cf/diff:/var/lib/docker/overlay2/7037ccc2d824a98602c867e4bae0593008c27c0d75a15b8c1fcc7f4cb2922efa/diff:/var/lib/docker/overlay2/72a5fb6fc7a5e9399d203f5f3fd1fee1f55a522e1d11cd395ad35e412a13543d/diff:/var/lib/docker/overlay2/7b0866181a8f3b434a34568dbd1adbb2de955aaf75f3e1ec18d82c95585ad6e9/diff:/var/lib/docker/overlay2/6a06cd507a9361bafaca91b11ae3c3c5730fc67fe05d4578e98970f09e9941e2/diff:/var/lib/docker/overlay2/ffe88853e0cc54ec202c829a171864b9a4a109c22f861a968ee4118ed1de9254/diff:/var/lib/docker/overlay2/b1a26e0d2e5f26795b06c00120a7adaa7593aa6a91b9efdbc7fc2f7967850496/diff:/var/lib/docker/overlay2/79c0d114531ad355fbb8a784900aeceea2b838e543a63ff2fd4134b512b0861b/diff:/var/lib/docker/overlay2/c76f8b3b4bd82d466a4091482c13dc6d4b54e39d074fafdc1f93823623823b4f/diff:/var/lib/docker/overlay2/e48a79b34c22e6bde3382abce648725ae76849fd24a3448a7aaa9477dde56461/diff:/var/lib/docker/overlay2/73b30a8c00486fcac9795861fa968fa9cf4da3e05bd3a7a399d85fadd604f815/diff",
            "MergedDir": "/var/lib/docker/overlay2/a720eb736e8af24f0db3009206e91b80bbbf1393f5e21d5d85a51502bf272b21/merged",
            "UpperDir": "/var/lib/docker/overlay2/a720eb736e8af24f0db3009206e91b80bbbf1393f5e21d5d85a51502bf272b21/diff",
            "WorkDir": "/var/lib/docker/overlay2/a720eb736e8af24f0db3009206e91b80bbbf1393f5e21d5d85a51502bf272b21/work"
        },
        "Name": "overlay2"
    },
    "RootFS": {
        "Type": "layers",
        "Layers": [
            "sha256:60e70dddd9ea3b1c77c62fe78be1d9f485706b6fe6052c3d88612bd8f56acd67",
            "sha256:8076efe3d64ead47a6ac47b688eaba9e19790cd297c7adf15871341d7f1fdb29",
            "sha256:6c445a4198d4ece50efa22a99bfa32828954a325c63a8db1ba6ebb1525c9a012",
            "sha256:b9d46130ce8be37cb8a372ecf64214756468fe0d6b1d999017cd9865ee37b83d",
            "sha256:e1fc790424a2d324cb4c3e3d45790dc217dac601f10b6f5f559fd1f90df9504d",
            "sha256:35f337df6f370e78c8d323009c5372415546513ee504ce3fbfb04bb6542cb49d",
            "sha256:64cc8171317573b921d3fc8db1b6fcaca494d79b3eed504bf0a6af564402dd81",
            "sha256:19fa77fe51635a026718f4f0d13d85cc46cb8a925c84b881845f89c761aaff95",
            "sha256:7d4c8e920abb5ca1018fe9475554a452875117d5053a951813c70bc34ec33e52",
            "sha256:c0fedf21a8287e43e71a6fab246bda783a6f4c6ffdc315321295332182531a19",
            "sha256:ab4c87ae1654efe1123c247c56dc3b6589151792064ca86d8cc1583736dfa1c2",
            "sha256:de62bc2f0a9b8c45b621074160c46003085ebfb4f86b0f0494eb28752228a717",
            "sha256:6196a310760f2d8397fc7378d046264f6b377b944720fa4d49c95ed61fb2c78e",
            "sha256:d62f3644e2833a3f9f331f74ea5b6d740c1f885b739320b57c099b8a0aadb9d1",
            "sha256:0d3876f83175879667577a4621968df44f39a19b1989547a1edbfa9652420946",
            "sha256:4c11e7e2f57042aae4d3e401b7fc3a810a2fff7432bc44ea8aa54d333bb8373d",
            "sha256:2ee89efe1f5c45facee75b1e1947a4788676dcef3a99dc2f7fab08171b1930b7",
            "sha256:066a3c92646bae971884a8c1bb1b8673252c4485cf097a9ce5f6f62f3da8ffd0",
            "sha256:fae418f6321cb9a7d180488a6973a8e66fd3d859e394df263cd05025905e7288",
            "sha256:41f8a6872bfd70e9bc5739f9b7847183de4730b13461019b26c02d8e1826bfe1",
            "sha256:190b1951f3516e3decfb7511ddc2be86aa616c36c6fbd7266bfc6ea97959d8d1",
            "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
            "sha256:8f29d91881deee7570376abde8b9ae348518ebfd99b871accf34297a1fb2f4b5",
            "sha256:8f29d91881deee7570376abde8b9ae348518ebfd99b871accf34297a1fb2f4b5",
            "sha256:903570a00e0696c5595242dc2db7ab936322f46a5ab101106c595887143c2051",
            "sha256:472ae70686092c37e1cb30759f19aeb3c92abfac69a825a3c0bc7bfcb531fa50",
            "sha256:cd9240a78de51adc1af09ea9e604656e33a02fc270071af77ebafd640578a5e9",
            "sha256:b12ec3f8431e6b56b03743b6df0c6fc163fd7199fe8864063b7e27c1d6c15bb0",
            "sha256:eeb15a372a4d4a1fa260042270021f9715e0ac9a59254bbc49333c1ae710c42e",
            "sha256:68f476d6d21e5cafc922778d597440b0a5b34bf7b5ed5ae273d7c439ed726305"
        ]
    },
    "Metadata": {
        "LastTagTime": "2026-04-20T10:55:36.525089601+08:00"
    }
}

更多版本

ghcr.io/hkuds/deeptutor:latest

linux/amd64 ghcr.io10.10GB2026-01-09 00:57
425

ghcr.io/hkuds/deeptutor:1.0.3

linux/amd64 ghcr.io1.10GB2026-04-14 11:01
55

ghcr.io/hkuds/deeptutor:1.1.2

linux/amd64 ghcr.io1.08GB2026-04-20 10:56
15