广告图片

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

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

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

源镜像 ghcr.io/hkuds/deeptutor:1.0.3
国内镜像 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.0.3
镜像ID sha256:a25b2540fe87e67e6e95a1d9f663a21ab5309b96d6b8b838174d65f3ac30fd23
镜像TAG 1.0.3
大小 1.10GB
镜像源 ghcr.io
CMD
启动入口 /app/entrypoint.sh
工作目录 /app
OS/平台 linux/amd64
浏览量 10 次
贡献者
镜像创建 2026-04-12T19:25:00.699836867Z
同步时间 2026-04-14 11:01
开放端口
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-12T19:22:43.384Z: org.opencontainers.image.created "DeepTutor: Agent-Native Personalized Learning Assistant": org.opencontainers.image.description Apache-2.0: org.opencontainers.image.licenses b815e4c11724a396a315d857398804929ec0043e: 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.0.3: org.opencontainers.image.version 1.0.0: version

Docker拉取命令

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

Containerd拉取命令

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

Shell快速替换命令

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

Ansible快速分发-Docker

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

Ansible快速分发-Containerd

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

镜像构建历史


# 2026-04-13 03:25:00  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/app/entrypoint.sh"]
                        
# 2026-04-13 03:25:00  0.00B 指定检查容器健康状态的命令
HEALTHCHECK &{["CMD-SHELL" "curl -f http://localhost:${BACKEND_PORT:-8001}/ || exit 1"] "30s" "10s" "1m0s" "0s" '\x03'}
                        
# 2026-04-13 03:25:00  0.00B 声明容器运行时监听的端口
EXPOSE [3782/tcp 8001/tcp]
                        
# 2026-04-13 03:25:00  1.45KB 执行命令并创建新的镜像层
RUN /bin/sh -c sed -i 's/\r$//' /app/entrypoint.sh && chmod +x /app/entrypoint.sh # buildkit
                        
# 2026-04-13 03:25:00  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-13 03:25:00  1.67KB 执行命令并创建新的镜像层
RUN /bin/sh -c sed -i 's/\r$//' /app/start-frontend.sh && chmod +x /app/start-frontend.sh # buildkit
                        
# 2026-04-13 03:25:00  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-13 03:25:00  387.00B 执行命令并创建新的镜像层
RUN /bin/sh -c sed -i 's/\r$//' /app/start-backend.sh && chmod +x /app/start-backend.sh # buildkit
                        
# 2026-04-13 03:25:00  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-13 03:25:00  617.00B 执行命令并创建新的镜像层
RUN /bin/sh -c sed -i 's/\r$//' /etc/supervisor/conf.d/deeptutor.conf # buildkit
                        
# 2026-04-13 03:25:00  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-13 03:25:00  0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c mkdir -p /etc/supervisor/conf.d # buildkit
                        
# 2026-04-13 03:25:00  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-13 03:24:59  592.00B 复制新文件或目录到容器中
COPY requirements.txt ./ # buildkit
                        
# 2026-04-13 03:24:59  3.09KB 复制新文件或目录到容器中
COPY requirements/ ./requirements/ # buildkit
                        
# 2026-04-13 03:24:59  7.95KB 复制新文件或目录到容器中
COPY pyproject.toml ./ # buildkit
                        
# 2026-04-13 03:24:59  116.63KB 复制新文件或目录到容器中
COPY scripts/ ./scripts/ # buildkit
                        
# 2026-04-13 03:24:59  56.33KB 复制新文件或目录到容器中
COPY deeptutor_cli/ ./deeptutor_cli/ # buildkit
                        
# 2026-04-13 03:24:59  3.02MB 复制新文件或目录到容器中
COPY deeptutor/ ./deeptutor/ # buildkit
                        
# 2026-04-13 03:24:59  219.54KB 复制新文件或目录到容器中
COPY /app/web/public/ ./web/public/ # buildkit
                        
# 2026-04-13 03:24:59  6.92MB 复制新文件或目录到容器中
COPY /app/web/.next/static/ ./web/.next/static/ # buildkit
                        
# 2026-04-13 03:24:59  72.30MB 复制新文件或目录到容器中
COPY /app/web/.next/standalone/ ./web/ # buildkit
                        
# 2026-04-13 03:24:59  5.30KB 复制新文件或目录到容器中
COPY /usr/local/bin /usr/local/bin # buildkit
                        
# 2026-04-13 03:24:58  493.00MB 复制新文件或目录到容器中
COPY /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages # buildkit
                        
# 2026-04-13 03:23:23  236.95KB 执行命令并创建新的镜像层
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-13 03:23:23  11.94MB 复制新文件或目录到容器中
COPY /usr/local/lib/node_modules /usr/local/lib/node_modules # buildkit
                        
# 2026-04-13 03:23:22  124.68MB 复制新文件或目录到容器中
COPY /usr/local/bin/node /usr/local/bin/node # buildkit
                        
# 2026-04-13 03:23:21  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-13 03:22:50  0.00B 设置工作目录为/app
WORKDIR /app
                        
# 2026-04-13 03:22:50  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-13 03:22:50  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:a25b2540fe87e67e6e95a1d9f663a21ab5309b96d6b8b838174d65f3ac30fd23",
    "RepoTags": [
        "ghcr.io/hkuds/deeptutor:1.0.3",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.0.3"
    ],
    "RepoDigests": [
        "ghcr.io/hkuds/deeptutor@sha256:2bebc76a4ff9af99707b4313cec4d2da7f115d60adf39a654764c12d32f96e57",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor@sha256:76859a8275c4157b9c4ac4ab1189b81343129786c86ce550fdecff063e7a8151"
    ],
    "Parent": "",
    "Comment": "buildkit.dockerfile.v0",
    "Created": "2026-04-12T19:25:00.699836867Z",
    "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-12T19:22:43.384Z",
            "org.opencontainers.image.description": "\"DeepTutor: Agent-Native Personalized Learning Assistant\"",
            "org.opencontainers.image.licenses": "Apache-2.0",
            "org.opencontainers.image.revision": "b815e4c11724a396a315d857398804929ec0043e",
            "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.0.3",
            "version": "1.0.0"
        }
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Size": 1103226772,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/4a799f21c80643b5aef073e0aac331655bc335763ffad7a2a753cb88d0529b80/diff:/var/lib/docker/overlay2/d43a564c7ec5699797a57f20b4ef0e6cf4402c1eb514cc5aea60cb7bcfada131/diff:/var/lib/docker/overlay2/fccebc656a15dd4828921faba8aaba5c4abc9108d06a2a0ef0d41407c3bad05c/diff:/var/lib/docker/overlay2/75ce637a982d840f435b27b718d9785fa8b525efb94b962f7dd11397083bc90d/diff:/var/lib/docker/overlay2/6794181525f991f16469bb0cade098fe70dc4821233c95c61e4e603c5441a7b3/diff:/var/lib/docker/overlay2/544cfb6486c16ebfd5961a0156ccccfa70e5ea7f63522244da5b610cb781fa53/diff:/var/lib/docker/overlay2/81a29bd6129da03578ea177c87b95e03250d2ea97c1d42dc98a2b81d4c8d105a/diff:/var/lib/docker/overlay2/6e22d12941df6b26c66d81d025aa1c3f64066d2311bcd6038328eef1170a6786/diff:/var/lib/docker/overlay2/9164a49bdeb546b0d75f89212aa1f29501ad4785c7c96d03321d45aa0e2b72da/diff:/var/lib/docker/overlay2/bed68645bd1c8332c9e9bcaddf4cb7d05cf513b2e1bd8f86505065c6ca0570de/diff:/var/lib/docker/overlay2/ca65430d51977ccfb05731992f7825f578a37d0ba3c85877d09555168d6899b2/diff:/var/lib/docker/overlay2/4c492e0b60ee973bd5542652811de952e6313e696a915c1faf363cd39bc0d37c/diff:/var/lib/docker/overlay2/25784cd656ed1d90dfb28f9b9b8e9cb2dbc628063acdc3718ae65cb360949828/diff:/var/lib/docker/overlay2/1c00d2d8155359acccce70ee5db790289d8d830cf28f00bb1c8874a9e01fe1ff/diff:/var/lib/docker/overlay2/4af5bf7308088e5019c42adbbefec16ffa63432d7b96ec39c0bee72d2aa452d0/diff:/var/lib/docker/overlay2/d223f6875de67eb3b99a57cb099495ce966a52e689c2faf19bbad2c11e5b7160/diff:/var/lib/docker/overlay2/ffbcea1babb8aea27b3c14c31aad92ee1db61a71d35ac7b19da1bb44b0c01734/diff:/var/lib/docker/overlay2/a6c8581361088372ab2233bd716a9b7637118f2e18b97598ac6a6bebb0af06fe/diff:/var/lib/docker/overlay2/ceb58825930d9655f653f3de2812e96d9f4b6c3fc2dfcb92eef05c9ebf0c203f/diff:/var/lib/docker/overlay2/bb0cc753f8bfa27aa8a4c01e499d166678f25323fd5bd892722a53b77bb582f1/diff:/var/lib/docker/overlay2/eac2562ec617b4645fbfbf436304cccecec0b8ad2c0bfcd58de68ec8ab842589/diff:/var/lib/docker/overlay2/07c6ed3057db56f11cef1fbb9688ac5fab0b11d1704d58b1c09dbc3d45313b45/diff:/var/lib/docker/overlay2/0941992accd273d854f3549b8fcfcfa97a73acfdc73f82d5a62e4185c6ffbc68/diff:/var/lib/docker/overlay2/413bb8da768a7aa36629d7eec83fa3d5037866ac398b5a7444a739dce2b0ab5d/diff:/var/lib/docker/overlay2/5f810e96ff35e1265bab624c2ec58a365deffea4144b268044019560dbd9bd8f/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/84a9eef340412eda7ba283b842c93ca63dea73c3558b69ece2d565b8c2597009/merged",
            "UpperDir": "/var/lib/docker/overlay2/84a9eef340412eda7ba283b842c93ca63dea73c3558b69ece2d565b8c2597009/diff",
            "WorkDir": "/var/lib/docker/overlay2/84a9eef340412eda7ba283b842c93ca63dea73c3558b69ece2d565b8c2597009/work"
        },
        "Name": "overlay2"
    },
    "RootFS": {
        "Type": "layers",
        "Layers": [
            "sha256:60e70dddd9ea3b1c77c62fe78be1d9f485706b6fe6052c3d88612bd8f56acd67",
            "sha256:8076efe3d64ead47a6ac47b688eaba9e19790cd297c7adf15871341d7f1fdb29",
            "sha256:6c445a4198d4ece50efa22a99bfa32828954a325c63a8db1ba6ebb1525c9a012",
            "sha256:b9d46130ce8be37cb8a372ecf64214756468fe0d6b1d999017cd9865ee37b83d",
            "sha256:7784495f3edc46d2347564ea5a7d5e43d4ca7dc9d8c71bcd923adbc64de8588d",
            "sha256:546f8c52d5706e35080de87b500b2dc0e024ee568b4699321f40b17c4f24876f",
            "sha256:63f899d104e8ba1098e581f030f28ebfd7264a7d149a34d25e673d18c61f2227",
            "sha256:cfe50d59302432a3f7757649abc21779023c109aa5bc509a6021d1c41b4a9ccb",
            "sha256:d59198a4ea7b1b5dfbf73e415e4cd5cbdab8ced8379c618140dcbdaf2a288034",
            "sha256:c1f11d51685ea87be84497769967680726570cdc0c7e07c92acd45d6df1a7b55",
            "sha256:b23e4aee16338030921df18ba7c7e73fa5dc276444b940f08f144ae5ec493ff1",
            "sha256:13cbdade4a878e4fff1c1b02e2f9ea09727c6e6a8ae192339f42411d511dd1d2",
            "sha256:d5c4c4502f8254573993c051468ee17ca0e96db1d3ce4b18e4fac557c6e62e03",
            "sha256:89bdc1f59f96be12c6970493f3878a7f61b200811d48c2d3d68dd92d50ac51ee",
            "sha256:184c03771d2fcdc8eebd08eece41a9f1eeb4cd8d2da7327a34db57d1c3612e32",
            "sha256:3ea065ac4070b3d8440b72078ee75cb7819a6db2d4f1c0748ba55de775ef389a",
            "sha256:b7de32c77754adf67be83dd1473ca4e8d103d9716b7df96b43c73c027d7b9671",
            "sha256:1ed7b27ddfcbe51c7aa0159dceefc98741644af2ce9df7d908c8eac5bec06f18",
            "sha256:61f448a1adfb817af086946c31c6ef6019b0a5e10f0825a47dcdb0912c7ca184",
            "sha256:73b639f989c912899588290522693df20631c315772080e0ffb1f8670647bbc7",
            "sha256:891e48f2057ec7d161f188ece9fcf2563e583c9334e2b6e110db4af7abfb609f",
            "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
            "sha256:3cb04b798a9d3f1f454fd18b697f213b148e1bdb7eee701f878034d837e03cb5",
            "sha256:3cb04b798a9d3f1f454fd18b697f213b148e1bdb7eee701f878034d837e03cb5",
            "sha256:a8517566061badac51eb94e4ae02dfa54b186f2f0e9d69829150c4da9de5f4fd",
            "sha256:520295928a187c09a4207ee47efc11c044b0c4e1d4a8214f85c52d327a05abdf",
            "sha256:804a20f802e5f7dacd95fb1066e91f6aa3fc23caac8d50edbfa20e6a3e98c3af",
            "sha256:c1abe5f3b4603641e85ad27bb1680ec19834ee209db43766f43c1863b1ebd2af",
            "sha256:0ff1dc40cb94ba725e2a6d74dd93167a0153ba2d3c1a306de9e6fe6601648bc6",
            "sha256:4bb6969d1bc7dca6a6b32dc168d1efc4a386f3bd30e79be66c7793ffc9370505"
        ]
    },
    "Metadata": {
        "LastTagTime": "2026-04-14T11:00:38.768692173+08:00"
    }
}

更多版本

ghcr.io/hkuds/deeptutor:latest

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

ghcr.io/hkuds/deeptutor:1.0.3

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