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

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

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

源镜像 ghcr.io/hkuds/deeptutor:1.3.10
国内镜像 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.3.10
镜像ID sha256:c80840bfae6557e3b4b6ae838e5e87b414eebb8cb5d4ee58847aa84e35c15d42
镜像TAG 1.3.10
大小 1.11GB
镜像源 ghcr.io
CMD
启动入口 /app/entrypoint.sh
工作目录 /app
OS/平台 linux/amd64
浏览量 19 次
贡献者
镜像创建 2026-05-10T15:01:04.058500589Z
同步时间 2026-05-22 18:03
开放端口
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 APP_VERSION=v1.3.10 NEXT_PUBLIC_APP_VERSION=v1.3.10 BACKEND_PORT=8001 FRONTEND_PORT=3782
镜像标签
DeepTutor: AI-Powered Personalized Learning Assistant: description DeepTutor Team: maintainer 2026-05-10T14:58:41.122Z: org.opencontainers.image.created "DeepTutor: Agent-Native Personalized Learning Assistant": org.opencontainers.image.description Apache-2.0: org.opencontainers.image.licenses ac8f00bd65a60bd933aa62c41f1e8eb740134629: 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.3.10: org.opencontainers.image.version 1.0.0: version

Docker拉取命令

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

Containerd拉取命令

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

Shell快速替换命令

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

Ansible快速分发-Docker

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

Ansible快速分发-Containerd

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

镜像构建历史


# 2026-05-10 23:01:04  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/app/entrypoint.sh"]
                        
# 2026-05-10 23:01:04  0.00B 指定检查容器健康状态的命令
HEALTHCHECK &{["CMD-SHELL" "curl -f http://localhost:${BACKEND_PORT:-8001}/ || exit 1"] "30s" "10s" "1m0s" "0s" '\x03'}
                        
# 2026-05-10 23:01:04  0.00B 声明容器运行时监听的端口
EXPOSE [3782/tcp 8001/tcp]
                        
# 2026-05-10 23:01:04  1.45KB 执行命令并创建新的镜像层
RUN |1 APP_VERSION=v1.3.10 /bin/sh -c sed -i 's/\r$//' /app/entrypoint.sh && chmod +x /app/entrypoint.sh # buildkit
                        
# 2026-05-10 23:01:03  1.45KB 执行命令并创建新的镜像层
RUN |1 APP_VERSION=v1.3.10 /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-05-10 23:01:03  1.67KB 执行命令并创建新的镜像层
RUN |1 APP_VERSION=v1.3.10 /bin/sh -c sed -i 's/\r$//' /app/start-frontend.sh && chmod +x /app/start-frontend.sh # buildkit
                        
# 2026-05-10 23:01:03  1.67KB 执行命令并创建新的镜像层
RUN |1 APP_VERSION=v1.3.10 /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-05-10 23:01:03  387.00B 执行命令并创建新的镜像层
RUN |1 APP_VERSION=v1.3.10 /bin/sh -c sed -i 's/\r$//' /app/start-backend.sh && chmod +x /app/start-backend.sh # buildkit
                        
# 2026-05-10 23:01:03  387.00B 执行命令并创建新的镜像层
RUN |1 APP_VERSION=v1.3.10 /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-05-10 23:01:03  617.00B 执行命令并创建新的镜像层
RUN |1 APP_VERSION=v1.3.10 /bin/sh -c sed -i 's/\r$//' /etc/supervisor/conf.d/deeptutor.conf # buildkit
                        
# 2026-05-10 23:01:03  617.00B 执行命令并创建新的镜像层
RUN |1 APP_VERSION=v1.3.10 /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-05-10 23:01:03  0.00B 执行命令并创建新的镜像层
RUN |1 APP_VERSION=v1.3.10 /bin/sh -c mkdir -p /etc/supervisor/conf.d # buildkit
                        
# 2026-05-10 23:01:03  0.00B 执行命令并创建新的镜像层
RUN |1 APP_VERSION=v1.3.10 /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/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-05-10 23:01:03  1.03KB 复制新文件或目录到容器中
COPY requirements.txt ./ # buildkit
                        
# 2026-05-10 23:01:03  5.83KB 复制新文件或目录到容器中
COPY requirements/ ./requirements/ # buildkit
                        
# 2026-05-10 23:01:03  10.15KB 复制新文件或目录到容器中
COPY pyproject.toml ./ # buildkit
                        
# 2026-05-10 23:01:03  175.27KB 复制新文件或目录到容器中
COPY scripts/ ./scripts/ # buildkit
                        
# 2026-05-10 23:01:03  62.76KB 复制新文件或目录到容器中
COPY deeptutor_cli/ ./deeptutor_cli/ # buildkit
                        
# 2026-05-10 23:01:03  3.85MB 复制新文件或目录到容器中
COPY deeptutor/ ./deeptutor/ # buildkit
                        
# 2026-05-10 23:01:03  238.45KB 复制新文件或目录到容器中
COPY /app/web/public/ ./web/public/ # buildkit
                        
# 2026-05-10 23:01:03  7.89MB 复制新文件或目录到容器中
COPY /app/web/.next/static/ ./web/.next/static/ # buildkit
                        
# 2026-05-10 23:01:03  57.65MB 复制新文件或目录到容器中
COPY /app/web/.next/standalone/ ./web/ # buildkit
                        
# 2026-05-10 23:01:02  12.15KB 复制新文件或目录到容器中
COPY /usr/local/bin /usr/local/bin # buildkit
                        
# 2026-05-10 23:01:02  507.87MB 复制新文件或目录到容器中
COPY /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages # buildkit
                        
# 2026-05-10 22:59:22  236.94KB 执行命令并创建新的镜像层
RUN |1 APP_VERSION=v1.3.10 /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-05-10 22:59:22  11.94MB 复制新文件或目录到容器中
COPY /usr/local/lib/node_modules /usr/local/lib/node_modules # buildkit
                        
# 2026-05-10 22:59:21  124.68MB 复制新文件或目录到容器中
COPY /usr/local/bin/node /usr/local/bin/node # buildkit
                        
# 2026-05-10 22:59:21  266.25MB 执行命令并创建新的镜像层
RUN |1 APP_VERSION=v1.3.10 /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-05-10 22:58:47  0.00B 设置工作目录为/app
WORKDIR /app
                        
# 2026-05-10 22:58:47  0.00B 设置环境变量 PYTHONDONTWRITEBYTECODE PYTHONUNBUFFERED PYTHONIOENCODING NODE_ENV APP_VERSION NEXT_PUBLIC_APP_VERSION BACKEND_PORT FRONTEND_PORT
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PYTHONIOENCODING=utf-8 NODE_ENV=production APP_VERSION=v1.3.10 NEXT_PUBLIC_APP_VERSION=v1.3.10 BACKEND_PORT=8001 FRONTEND_PORT=3782
                        
# 2026-05-10 22:58:47  0.00B 添加元数据标签
LABEL maintainer=DeepTutor Team description=DeepTutor: AI-Powered Personalized Learning Assistant version=1.0.0
                        
# 2026-05-10 22:58:47  0.00B 定义构建参数
ARG APP_VERSION=v1.3.10
                        
# 2026-05-09 04:09:58  0.00B 设置默认要执行的命令
CMD ["python3"]
                        
# 2026-05-09 04:09:58  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-05-09 04:09:58  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-05-09 04:01:41  0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625
                        
# 2026-05-09 04:01:41  0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.11.15
                        
# 2026-05-09 04:01:41  0.00B 设置环境变量 GPG_KEY
ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D
                        
# 2026-05-09 04:01:41  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-05-09 04:01:41  0.00B 设置环境变量 LANG
ENV LANG=C.UTF-8
                        
# 2026-05-09 04:01:41  0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
                        
# 2026-05-05 08:00:00  78.62MB 
# debian.sh --arch 'amd64' out/ 'trixie' '@1777939200'
                        
                    

镜像信息

{
    "Id": "sha256:c80840bfae6557e3b4b6ae838e5e87b414eebb8cb5d4ee58847aa84e35c15d42",
    "RepoTags": [
        "ghcr.io/hkuds/deeptutor:1.3.10",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor:1.3.10"
    ],
    "RepoDigests": [
        "ghcr.io/hkuds/deeptutor@sha256:800c5293db1532908ec5410477d5a11303e0d965af77954d0cff7628fc7b36e6",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/hkuds/deeptutor@sha256:a4f78ce967e43cde8717badd1007bfcb1a5c1987040f3d352508582ddcb8d4e3"
    ],
    "Parent": "",
    "Comment": "buildkit.dockerfile.v0",
    "Created": "2026-05-10T15:01:04.058500589Z",
    "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",
            "APP_VERSION=v1.3.10",
            "NEXT_PUBLIC_APP_VERSION=v1.3.10",
            "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-05-10T14:58:41.122Z",
            "org.opencontainers.image.description": "\"DeepTutor: Agent-Native Personalized Learning Assistant\"",
            "org.opencontainers.image.licenses": "Apache-2.0",
            "org.opencontainers.image.revision": "ac8f00bd65a60bd933aa62c41f1e8eb740134629",
            "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.3.10",
            "version": "1.0.0"
        }
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Size": 1105344051,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/c1c21e89d720b69bf54d9b24333db6ec1960c243af7e5632ac0876dec4efb230/diff:/var/lib/docker/overlay2/f9a76dbd068d6712592111efeb5cdcf85e5b4b4c36c0bbf43c7bc2fc30af1aa4/diff:/var/lib/docker/overlay2/080a91f15c9a8391bf6b2b75b0005c9e3f496faf8305ab3dbd9b75b013670af8/diff:/var/lib/docker/overlay2/bad523dd41031aa76891eec048148a619ecac56d8203d223f9e212a3a044f80d/diff:/var/lib/docker/overlay2/9dba2592ead84f5d8138e623a6f91dc337d2d57050cb4fce186c701b287cf37d/diff:/var/lib/docker/overlay2/9426186cfe48b5e0a44b766e1641b09d3dc5363e66f0a3e185abe1b2ddba3a55/diff:/var/lib/docker/overlay2/2878d1cdaf04c4ea0369a26e7c1dbe2375a25e4c6005ed0a238710895485054f/diff:/var/lib/docker/overlay2/89dcc06aa3371c508a8a034a94cb5bb789d089a37c321ab6885b3a812b4d9375/diff:/var/lib/docker/overlay2/58f0017e43f3b7b252c5efaccea5b730b89360eb3f1cee2440b12daf8ae15aa2/diff:/var/lib/docker/overlay2/4ec8ad28a681618c81679145d4cf0097845f9aec7216de888ef3bd6c219eb084/diff:/var/lib/docker/overlay2/3170bca612e666be618515df50cd5517a70370aceb89b67010d52aed1856a31f/diff:/var/lib/docker/overlay2/40d7b06dbb6c1316fd9acb007164d25d3fd489c3a1065e69f3c3ebd51a94f4da/diff:/var/lib/docker/overlay2/16051d14f92157c43f43a2ca251631bd46477822f075e46a13f4e354311a7d45/diff:/var/lib/docker/overlay2/60f6fbf69e31ecfb6840ff03ce32de8e70b690eddafa8c02212bf77616af803b/diff:/var/lib/docker/overlay2/51e452c53a4087a3f2f79f171ea03b3e3ae4a9011cc6f0b52da6f7a56c8ac7db/diff:/var/lib/docker/overlay2/cd6d5dd507d932c7846afdadd236e855320e430ede4d0010e818fd3848abc92c/diff:/var/lib/docker/overlay2/7f95e1e9f21c1c759e3f2c3ce959309e8c160321d8e17d0eb2379d00e1cfee99/diff:/var/lib/docker/overlay2/66c13c028171cc9feb4f8272c8d65c64ad44321f9e0caf64a68095114c24606c/diff:/var/lib/docker/overlay2/02083ea20777dc732f4e8f1ae928bc8a7b9998a8e19078d8725019d2a7954306/diff:/var/lib/docker/overlay2/b5990484cdad4c261141e52325293daafc678b80290f1adbbada531a78d97851/diff:/var/lib/docker/overlay2/fcc8a951dcc3d7b3acc118e1b0a9cfbd3ae4294883444b15baa3a25c21982ab9/diff:/var/lib/docker/overlay2/8eb98b60c4b5fd0e04844f33b546ee81b1de9020110e69eb9cd1ac3ce708fab7/diff:/var/lib/docker/overlay2/cedf870dc9f16e6cc7a90c97fcde86dfc50f98cfeaa92d3813f2bb69a0ebcb9f/diff:/var/lib/docker/overlay2/129f8fb0b7983bed8c849058c58abf4f27f2526ada50bc9f78e1fac3f02c475e/diff:/var/lib/docker/overlay2/beacf3c5e8f11ba2fecbcc29ac4a0a3d2d5c3cbb544dd9892b78ce96e58d85ba/diff:/var/lib/docker/overlay2/cd2289b407a503e16e0b2ab57bb5a035aa78fa71b8da76e5d4cfd814260137a4/diff:/var/lib/docker/overlay2/5292dc4c031bb56640e2cf481f6b5fb4c7e159d57cf63b04abff1b9382a181b6/diff:/var/lib/docker/overlay2/1facca22f280aa8a428cbcb68ac464c99fcc227a059726e120231ed943263257/diff:/var/lib/docker/overlay2/1baaeea31812c9c396da6484596f66c8b894996bf2e84091ce89cbb2c0f6f873/diff",
            "MergedDir": "/var/lib/docker/overlay2/3ad41185937939f782ba94adef7031d4c3762d54fa546677967cd6314304d996/merged",
            "UpperDir": "/var/lib/docker/overlay2/3ad41185937939f782ba94adef7031d4c3762d54fa546677967cd6314304d996/diff",
            "WorkDir": "/var/lib/docker/overlay2/3ad41185937939f782ba94adef7031d4c3762d54fa546677967cd6314304d996/work"
        },
        "Name": "overlay2"
    },
    "RootFS": {
        "Type": "layers",
        "Layers": [
            "sha256:79dd1f4c855cd061f687a994426634cf5f84c8ecdbc66c7a7d118e828dd93c99",
            "sha256:2e53cb234c597e3f6a8f896df5efafd6ceca83645632661f2e32cd7144b43738",
            "sha256:799edc77eb3d21542943122b97c5ba1e80c2a1eb3d222e23196717126398ef61",
            "sha256:94e760ec30748f73d19bcb5d4da140b8dde956299eac18e3372d89236f56c995",
            "sha256:a4ca8b93518bb40b61729d13a0e4685f58cba5cd7c2612a72da6022e3a89d8df",
            "sha256:fb4d5844b925bdf1536053341e8ff65bc82f6567269fbb4807afa9a0d2b1bb4e",
            "sha256:0aed4241a713cdb51209a7132938a65f77e0034514072b6243aed36b6f226989",
            "sha256:4d2f245ce2f8f771166e690cc9b06f24039061cdd78953f314eeff41385447cf",
            "sha256:870c258856a74cc058f72f5dbbc3ef15777a523bbc494b1ad72b132a2d6cba67",
            "sha256:9aab1310513a265d4503418fa99f4e749bffabd3bf3fbeebd684258d32518239",
            "sha256:a5cdd7fa567dc41e97c5ddb2db2f5355aae5cd87213f619d442fbacc4b50f10e",
            "sha256:440d18526c9fad18c219b3ccf655772bb6962f265108bc23adf208faafdabf44",
            "sha256:7eb12ed1f7e26dd141fc4492833acc2436c0d220f9a75a1a909e9ece9e0b9e08",
            "sha256:4b9deaf4e73ef89170b5b75476bc069faf4e268dacd19943011580ea86f49f44",
            "sha256:1696dd486fd1191f4e238678e0a905a9f84e0d617e09b6549d713af97145d14b",
            "sha256:7d04f56596cdb871e095782dc91d28d941b69fbb5cbe10cf853937957c5e828d",
            "sha256:fea2462840314a2d98a7182141cdd34549aa27d9a538c08a4a6586eda85b5a72",
            "sha256:74bc747b9af7d73e58fa01818c7a1ce69a3d14cb751a2aa8e28fa6a7c3626efd",
            "sha256:158540ec9afa335d9563601ad8f5a60303da1930a428bd5683b3c07ea8fefc1f",
            "sha256:3c49587726bc4db6cff6aed5f21ac010d619a7eb292eb3656a5c84b637d68bc3",
            "sha256:4acb5aace441e061dab2f3a262394c0284ff5c73d3cc9c2134f904595ebb9098",
            "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
            "sha256:936cbd09301a5ac433842cde44332f3ee99b16c25c92293a12c35e2734160540",
            "sha256:936cbd09301a5ac433842cde44332f3ee99b16c25c92293a12c35e2734160540",
            "sha256:468a7235cecacfebce4b6cd3b7553d22574c99f2fe24ba4c204c5e2caf8789ba",
            "sha256:cc9ad9e4173ae6b362e47e5a01e0b516dd6838570df551f828c8431a097fb804",
            "sha256:d3f2e37299c69ca4218a564d54673a8713fac533ae8a9f060c175e6bd60f60f0",
            "sha256:57637beb82a28cc1d4f9550d4078cd62c38981ac44c9ec1aa3b731a0b78c75b5",
            "sha256:e937eeb31b01de24073aa8460f3742c9a6e027f6d92e826c024f4a25c31d1720",
            "sha256:b5b964b807b62c6e36357a1b553ebfe683660ecf9c3deca903fd21de66bd5312"
        ]
    },
    "Metadata": {
        "LastTagTime": "2026-05-22T18:02:21.735422144+08:00"
    }
}

更多版本

ghcr.io/hkuds/deeptutor:latest

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

ghcr.io/hkuds/deeptutor:1.0.3

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

ghcr.io/hkuds/deeptutor:1.1.2

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

ghcr.io/hkuds/deeptutor:1.3.10

linux/amd64 ghcr.io1.11GB2026-05-22 18:03
18