ℹ️
注意:这是一个 latest 标签镜像

latest 并不代表最新版本,本站同步时间存在延迟,无法保证此镜像与上游最新版本一致
生产环境建议使用明确的版本号(如 v1.2.3),避免因版本不一致导致问题。 了解更多 →

logo
ghcr.io/mrbanke/class-schedule:latest
linux/amd64 ghcr.io

这个Docker镜像可能是一个用于展示或管理课程表的应用程序镜像,通常包含课程表相关的功能模块,可部署为容器化服务以提供课程安排查询、展示等功能。

17
浏览次数
171.92MB
镜像大小
国内镜像
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/mrbanke/class-schedule:latest
源镜像
ghcr.io/mrbanke/class-schedule:latest
镜像ID
sha256:d883167be216a139ba2f0456fb6ab4e3fbb65c4d366285b597a7ea48d1c72c68
镜像 TAG
latest
镜像大小
171.92MB
平台架构
linux/amd64
镜像源
ghcr.io
CMD
node server/index.mjs
启动入口
docker-entrypoint.sh
工作目录
/app
OS/平台
linux/amd64
镜像创建
2026-09-10T03:50:12.261699355Z
同步时间
2026-09-10 13:48
浏览量
17 次
贡献者
🔌 开放端口 1
21873/tcp
📁 目录挂载 1
 /app/data
⚙️ 环境变量 9
KeyValue
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 0
NODE_VERSION=22.23.2 1
YARN_VERSION=1.22.22 2
NODE_ENV=production 3
DATA_DIR=/app/data 4
STATIC_DIR=/app/dist 5
PORT=21873 6
HOST=0.0.0.0 7
TZ=Asia/Shanghai 8
🏷️ 镜像标签 8
KeyValue
2026-09-10T03:50:03.026Z org.opencontainers.image.created
每日课程表·天气提醒 org.opencontainers.image.description
MIT org.opencontainers.image.licenses
00d8cb60e444c5f3d4944b2e830a5bf1374ee878 org.opencontainers.image.revision
https://github.com/MRBANKE/class-schedule org.opencontainers.image.source
class-schedule org.opencontainers.image.title
https://github.com/MRBANKE/class-schedule org.opencontainers.image.url
1.0.3 org.opencontainers.image.version
🛡️ 镜像安全扫描
alpine 3.24.1 Trivy 2026-09-10 13:48 查看完整报告
13
低危 LOW
13
中危 MEDIUM
12
高危 HIGH
1
严重 CRITICAL
受影响目标 (2)
ghcr.io/mrbanke/class-schedule:latest (alpine 3.24.1) alpine Node.js node-pkg

Docker拉取命令

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/mrbanke/class-schedule:latest
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/mrbanke/class-schedule:latest  ghcr.io/mrbanke/class-schedule:latest

Containerd拉取命令

ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/mrbanke/class-schedule:latest
ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/mrbanke/class-schedule:latest  ghcr.io/mrbanke/class-schedule:latest

Shell快速替换命令

sed -i 's#ghcr.io/mrbanke/class-schedule:latest#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/mrbanke/class-schedule:latest#' deployment.yaml

Ansible快速分发-Docker

#ansible k8s -m shell -a 'docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/mrbanke/class-schedule:latest && docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/mrbanke/class-schedule:latest  ghcr.io/mrbanke/class-schedule:latest'

Ansible快速分发-Containerd

#ansible k8s -m shell -a 'ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/mrbanke/class-schedule:latest && ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/mrbanke/class-schedule:latest  ghcr.io/mrbanke/class-schedule:latest'

镜像构建历史


# 2026-09-10 11:50:12  0.00B 设置默认要执行的命令
CMD ["node" "server/index.mjs"]
                        
# 2026-09-10 11:50:12  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
                        
# 2026-09-10 11:50:12  0.00B 指定检查容器健康状态的命令
HEALTHCHECK {Test:[CMD-SHELL node -e "fetch('http://127.0.0.1:'+(process.env.PORT||21873)+'/api/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] Interval:30s Timeout:5s StartPeriod:5s StartInterval:0s Retries:3}
                        
# 2026-09-10 11:50:12  0.00B 声明容器运行时监听的端口
EXPOSE [21873/tcp]
                        
# 2026-09-10 11:50:12  0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/app/data]
                        
# 2026-09-10 11:50:12  0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c mkdir -p /app/data # buildkit
                        
# 2026-09-10 11:50:12  626.00B 复制新文件或目录到容器中
COPY --chmod=755 docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh # buildkit
                        
# 2026-09-10 11:50:12  64.86KB 复制新文件或目录到容器中
COPY --chown=node:node server ./server # buildkit
                        
# 2026-09-10 11:50:12  6.62MB 复制新文件或目录到容器中
COPY --chown=node:node /app/dist ./dist # buildkit
                        
# 2026-09-10 11:50:08  509.43KB 执行命令并创建新的镜像层
RUN /bin/sh -c apk add --no-cache tzdata su-exec # buildkit
                        
# 2026-09-10 11:50:08  0.00B 设置环境变量 NODE_ENV DATA_DIR STATIC_DIR PORT HOST TZ
ENV NODE_ENV=production DATA_DIR=/app/data STATIC_DIR=/app/dist PORT=21873 HOST=0.0.0.0 TZ=Asia/Shanghai
                        
# 2026-09-10 11:50:08  0.00B 设置工作目录为/app
WORKDIR /app
                        
# 2026-07-30 01:26:59  0.00B 设置默认要执行的命令
CMD ["node"]
                        
# 2026-07-30 01:26:59  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
                        
# 2026-07-30 01:26:59  388.00B 复制新文件或目录到容器中
COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
                        
# 2026-07-30 01:26:59  5.36MB 执行命令并创建新的镜像层
RUN /bin/sh -c apk add --no-cache --virtual .build-deps-yarn curl gnupg tar   && export GNUPGHOME="$(mktemp -d)"   && for key in     6A010C5166006599AA17F08146C2130DFD2497F5   ; do     { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ||     { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ;   done   && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz"   && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc"   && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz   && gpgconf --kill all   && rm -rf "$GNUPGHOME"   && mkdir -p /opt   && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/   && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn   && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg   && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz   && apk del .build-deps-yarn   && yarn --version   && rm -rf /tmp/* # buildkit
                        
# 2026-07-30 01:26:55  0.00B 设置环境变量 YARN_VERSION
ENV YARN_VERSION=1.22.22
                        
# 2026-07-30 01:26:55  150.94MB 执行命令并创建新的镜像层
RUN /bin/sh -c addgroup -g 1000 node     && adduser -u 1000 -G node -s /bin/sh -D node     && apk add --no-cache         libstdc++     && apk add --no-cache --virtual .build-deps         curl     && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)"       && case "${alpineArch##*-}" in         x86_64) ARCH='x64' CHECKSUM="2d18b5731055f7efa6c899004909b00ee110e38d3775745f60ec9ccf1f9982e7" OPENSSL_ARCH=linux-x86_64;;         x86) OPENSSL_ARCH=linux-elf;;         aarch64) OPENSSL_ARCH=linux-aarch64;;         arm*) OPENSSL_ARCH=linux-armv4;;         ppc64le) OPENSSL_ARCH=linux-ppc64le;;         s390x) OPENSSL_ARCH=linux-s390x;;         *) ;;       esac   && if [ -n "${CHECKSUM}" ]; then     set -eu;     curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz";     echo "$CHECKSUM  node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c -       && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner       && ln -s /usr/local/bin/node /usr/local/bin/nodejs;   else     echo "Building from source"     && apk add --no-cache --virtual .build-deps-full         binutils-gold         g++         gcc         gnupg         libgcc         linux-headers         make         python3         py-setuptools     && export GNUPGHOME="$(mktemp -d)"     && for key in       5BE8A3F6C8A5C01D106C0AD820B1A390B168D356       DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7       CC68F5A3106FF448322E48ED27F5E38D5B0A215F       8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600       890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4       C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C       108F52B48DB57BB0CC439B2997B01419BD92F80A       A363A499291CBBC940DD62E41F10027AF002F8B0       655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD     ; do       { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ||       { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ;     done     && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz"     && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc"     && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc     && gpgconf --kill all     && rm -rf "$GNUPGHOME"     && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c -     && tar -xf "node-v$NODE_VERSION.tar.xz"     && cd "node-v$NODE_VERSION"     && ./configure     && make -j$(getconf _NPROCESSORS_ONLN) V=     && make install     && apk del .build-deps-full     && cd ..     && rm -Rf "node-v$NODE_VERSION"     && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt;   fi   && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"   && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \;   && apk del .build-deps   && node --version   && npm --version   && rm -rf /tmp/* # buildkit
                        
# 2026-07-30 01:26:55  0.00B 设置环境变量 NODE_VERSION
ENV NODE_VERSION=22.23.2
                        
# 2026-06-16 08:01:29  0.00B 设置默认要执行的命令
CMD ["/bin/sh"]
                        
# 2026-06-16 08:01:29  8.42MB 复制文件或目录到容器中
ADD alpine-minirootfs-3.24.1-x86_64.tar.gz / # buildkit
                        
                    

镜像信息

{
    "Id": "sha256:d883167be216a139ba2f0456fb6ab4e3fbb65c4d366285b597a7ea48d1c72c68",
    "RepoTags": [
        "ghcr.io/mrbanke/class-schedule:latest",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/mrbanke/class-schedule:latest"
    ],
    "RepoDigests": [
        "ghcr.io/mrbanke/class-schedule@sha256:dbd8d53f139c1fab49458f1cf93baea97ac556ba4322b6ff949d492ea9e8d044",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/mrbanke/class-schedule@sha256:1ebf62b2c000889798695b676fff7239e55d1fc3e2ee902c252b9afdc0ad1a27"
    ],
    "Parent": "",
    "Comment": "buildkit.dockerfile.v0",
    "Created": "2026-09-10T03:50:12.261699355Z",
    "Container": "",
    "ContainerConfig": null,
    "DockerVersion": "",
    "Author": "",
    "Config": {
        "Hostname": "",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "ExposedPorts": {
            "21873/tcp": {}
        },
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "NODE_VERSION=22.23.2",
            "YARN_VERSION=1.22.22",
            "NODE_ENV=production",
            "DATA_DIR=/app/data",
            "STATIC_DIR=/app/dist",
            "PORT=21873",
            "HOST=0.0.0.0",
            "TZ=Asia/Shanghai"
        ],
        "Cmd": [
            "node",
            "server/index.mjs"
        ],
        "Healthcheck": {
            "Test": [
                "CMD-SHELL",
                "node -e \"fetch('http://127.0.0.1:'+(process.env.PORT||21873)+'/api/health').then(r=\u003eprocess.exit(r.ok?0:1)).catch(()=\u003eprocess.exit(1))\""
            ],
            "Interval": 30000000000,
            "Timeout": 5000000000,
            "StartPeriod": 5000000000,
            "Retries": 3
        },
        "ArgsEscaped": true,
        "Image": "",
        "Volumes": {
            "/app/data": {}
        },
        "WorkingDir": "/app",
        "Entrypoint": [
            "docker-entrypoint.sh"
        ],
        "OnBuild": null,
        "Labels": {
            "org.opencontainers.image.created": "2026-09-10T03:50:03.026Z",
            "org.opencontainers.image.description": "每日课程表·天气提醒",
            "org.opencontainers.image.licenses": "MIT",
            "org.opencontainers.image.revision": "00d8cb60e444c5f3d4944b2e830a5bf1374ee878",
            "org.opencontainers.image.source": "https://github.com/MRBANKE/class-schedule",
            "org.opencontainers.image.title": "class-schedule",
            "org.opencontainers.image.url": "https://github.com/MRBANKE/class-schedule",
            "org.opencontainers.image.version": "1.0.3"
        }
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Size": 171917143,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/485c9c2791aa73785f7ff473341f646c4fc828823a76cf8494347f0287eee3c0/diff:/var/lib/docker/overlay2/0ce313b4fee0b90e7a8c0db1881790781cb775620a6d8eee262e0caf70257a0a/diff:/var/lib/docker/overlay2/e2c13083d6319bbd0ddea55e3d4a3dc1abf43ba6cc665610e082df05c532cc15/diff:/var/lib/docker/overlay2/0adc955ff122233d7203cb61eee8f18003de75a5bf9d202f2cb1d0090ac2e2fb/diff:/var/lib/docker/overlay2/a98d7d8861270b0f985aa4593758c211d171fecc0f315b86238b6de6427f62a0/diff:/var/lib/docker/overlay2/73c93d05a9d0d6f24c4b4ceeab2085666a39bcde551c16a26d5cc5259e89ed5f/diff:/var/lib/docker/overlay2/75b66060a0e88156c3fde01a77e969b9682ab31533469605f3afe1f81c129660/diff:/var/lib/docker/overlay2/f676aab4dc5e10c7643b3cdaf618d439c01671de9f6e4b71011e833bf20d91e5/diff:/var/lib/docker/overlay2/d51bd9f442769618005c9be653661c047116bf4ebe32b04db2ad4ca7bebb792d/diff",
            "MergedDir": "/var/lib/docker/overlay2/07dfd65f8bd02bfa58431194a48754ff2f0ab1091850e80e6433e34db6006aaf/merged",
            "UpperDir": "/var/lib/docker/overlay2/07dfd65f8bd02bfa58431194a48754ff2f0ab1091850e80e6433e34db6006aaf/diff",
            "WorkDir": "/var/lib/docker/overlay2/07dfd65f8bd02bfa58431194a48754ff2f0ab1091850e80e6433e34db6006aaf/work"
        },
        "Name": "overlay2"
    },
    "RootFS": {
        "Type": "layers",
        "Layers": [
            "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c",
            "sha256:5654eeaf04645c03fadc59bca7835753203d173222ab6ad8729f75b3dde98784",
            "sha256:fe2c6446e3d9c78c5f734536452b9ea4bf7c4c46c4b4a575d2973b79691ec57a",
            "sha256:baf2266664bacf240e13831e4192f8c92196c603ce8a20a4a50035ad87f8f2fb",
            "sha256:4fc5628497150788d8f0ba8d3bcfa5c21288d02cce3819ad08f8f3ddecda9401",
            "sha256:79f01e167c9f7b8dc9e687a554cd140efbe422487519e6ac4eb6587f9143e55b",
            "sha256:8efdb1613b48cb3aa40f94507994b03b98a3a18436f9a09c104536404b797cf0",
            "sha256:26817c958efa66d5d74e362a67d41b4b07df9c8230c27a18d13111a49c47205c",
            "sha256:a27ebce1a2c769f364bd8cb417978313c5ce81f25beb4a34636d6571a0eabd87",
            "sha256:1c74be87cccd0989fb64796b46f21c9b5d59f0ebf53f93bdfae4148458f97027"
        ]
    },
    "Metadata": {
        "LastTagTime": "2026-09-10T13:48:48.551761758+08:00"
    }
}

更多版本

ghcr.io/mrbanke/class-schedule:latest

linux/amd64 ghcr.io171.92MB2026-09-10 13:48
16
检测到您正在使用广告拦截插件,本站为公益站点,依赖广告维持运转 🙏 查看如何关闭 ×