镜像构建历史
# 2026-11-09 08:07:37 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["python" "-m" "peach.server"]
# 2026-11-09 08:07:37 0.00B 指定检查容器健康状态的命令
HEALTHCHECK {Test:[CMD python -c import urllib.request; urllib.request.urlopen('http://127.0.0.1:8900/healthz?ready=1', timeout=3).read()] Interval:30s Timeout:5s StartPeriod:1m0s StartInterval:0s Retries:3}
# 2026-11-09 08:07:37 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/data]
# 2026-11-09 08:07:37 0.00B 声明容器运行时监听的端口
EXPOSE [8900/tcp]
# 2026-11-09 08:07:37 0.00B 指定运行容器时使用的用户
USER peach
# 2026-11-09 08:07:37 0.00B 设置工作目录为/data
WORKDIR /data
# 2026-11-09 08:07:37 0.00B 设置环境变量 PATH PEACH_DATA_ROOT PYTHONUNBUFFERED PYTHONIOENCODING PYTHONUTF8 PEACH_FACE_MODELS PEACH_DISTRIBUTION PEACH_AMANE_RUNTIME PEACH_UPDATE_DIR
ENV PATH=/app/.venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PEACH_DATA_ROOT=/data PYTHONUNBUFFERED=1 PYTHONIOENCODING=utf-8 PYTHONUTF8=1 PEACH_FACE_MODELS=/app/tools/face-models PEACH_DISTRIBUTION=docker PEACH_AMANE_RUNTIME=/app/amane-runtime PEACH_UPDATE_DIR=/update
# 2026-11-09 08:07:37 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c mkdir /update && chown peach:peach /update # buildkit
# 2026-11-09 08:07:37 4.71MB 执行命令并创建新的镜像层
RUN /bin/sh -c /app/amane-runtime/.venv/bin/python -X utf8 /app/tools/amane-bridge/bridge.py --self-check # buildkit
# 2026-11-09 08:07:36 355.41KB 复制新文件或目录到容器中
COPY /app/tools/amane-bridge /app/tools/amane-bridge # buildkit
# 2026-11-09 08:07:36 207.82MB 复制新文件或目录到容器中
COPY /app/amane-runtime /app/amane-runtime # buildkit
# 2026-11-09 08:07:34 371.02MB 复制新文件或目录到容器中
COPY /app/.venv /app/.venv # buildkit
# 2026-10-27 11:39:53 11.36KB 复制文件或目录到容器中
ADD --chmod=a+rX https://raw.githubusercontent.com/opencv/opencv_zoo/48b10fa505aeb51fbd127fc60a5c660040e823b7/models/face_recognition_sface/LICENSE /app/tools/face-models/LICENSE-sface.txt # buildkit
# 2026-10-27 11:39:53 1.08KB 复制文件或目录到容器中
ADD --chmod=a+rX https://raw.githubusercontent.com/opencv/opencv_zoo/48b10fa505aeb51fbd127fc60a5c660040e823b7/models/face_detection_yunet/LICENSE /app/tools/face-models/LICENSE-yunet.txt # buildkit
# 2026-10-27 11:39:53 38.70MB 复制文件或目录到容器中
ADD --chmod=a+rX https://media.githubusercontent.com/media/opencv/opencv_zoo/48b10fa505aeb51fbd127fc60a5c660040e823b7/models/face_recognition_sface/face_recognition_sface_2021dec.onnx /app/tools/face-models/face_recognition_sface_2021dec.onnx # buildkit
# 2026-10-27 11:39:53 232.59KB 复制文件或目录到容器中
ADD --chmod=a+rX https://media.githubusercontent.com/media/opencv/opencv_zoo/48b10fa505aeb51fbd127fc60a5c660040e823b7/models/face_detection_yunet/face_detection_yunet_2023mar.onnx /app/tools/face-models/face_detection_yunet_2023mar.onnx # buildkit
# 2026-10-27 11:39:53 447.97MB 执行命令并创建新的镜像层
RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends ffmpeg openssl ca-certificates mesa-va-drivers vainfo && rm -rf /var/lib/apt/lists/* && groupadd --gid 1000 peach && useradd --uid 1000 --gid 1000 --create-home peach && mkdir /data && chown peach:peach /data # buildkit
# 2026-10-27 11:39:53 0.00B 添加元数据标签
LABEL org.opencontainers.image.title=Peach org.opencontainers.image.source=https://github.com/peach-mitao/peach org.opencontainers.image.documentation=https://github.com/peach-mitao/peach/blob/master/docs/DOCKER.md org.opencontainers.image.licenses=AGPL-3.0-or-later
# 2026-10-22 06:25:42 0.00B 设置默认要执行的命令
CMD ["python3"]
# 2026-10-22 06:25:42 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-10-22 06:25:42 39.80MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev g++ gcc gnupg libbluetooth-dev libbz2-dev libc6-dev libdb-dev libffi-dev libgdbm-dev liblzma-dev libmpdec-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev libzstd-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 -; 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"; arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; case "$arch" in amd64|arm64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; i386) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; 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 --version # buildkit
# 2026-10-22 06:19:04 0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=673ae7232d84c894729882c8257d300ef2d26523911bfd3917ec8ce7f526f99b
# 2026-10-22 06:19:04 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.15.1
# 2026-10-22 06:19:04 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-10-22 06:19:04 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-10-21 05:32:55 78.82MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1792531975'
镜像信息
{
"Id": "sha256:e9d946c2f9541064070348f57b11ba597c806100f82ec0c9c4b4251626ef0ed8",
"RepoTags": [
"longmeidao/peach:edge",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/longmeidao/peach:edge"
],
"RepoDigests": [
"longmeidao/peach@sha256:0a4b3aef4acceb97546116469401053cb6f3483c78b3e56e55e3dacb9c57e3c1",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/longmeidao/peach@sha256:0a4b3aef4acceb97546116469401053cb6f3483c78b3e56e55e3dacb9c57e3c1"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-11-09T00:07:37.829913059Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "peach",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8900/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/app/.venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"PYTHON_VERSION=3.15.1",
"PYTHON_SHA256=673ae7232d84c894729882c8257d300ef2d26523911bfd3917ec8ce7f526f99b",
"PEACH_DATA_ROOT=/data",
"PYTHONUNBUFFERED=1",
"PYTHONIOENCODING=utf-8",
"PYTHONUTF8=1",
"PEACH_FACE_MODELS=/app/tools/face-models",
"PEACH_DISTRIBUTION=docker",
"PEACH_AMANE_RUNTIME=/app/amane-runtime",
"PEACH_UPDATE_DIR=/update"
],
"Cmd": null,
"Healthcheck": {
"Test": [
"CMD",
"python",
"-c",
"import urllib.request; urllib.request.urlopen('http://127.0.0.1:8900/healthz?ready=1', timeout=3).read()"
],
"Interval": 30000000000,
"Timeout": 5000000000,
"StartPeriod": 60000000000,
"Retries": 3
},
"Image": "",
"Volumes": {
"/data": {}
},
"WorkingDir": "/data",
"Entrypoint": [
"python",
"-m",
"peach.server"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.description": "Local-first video metadata scraper and media manager for VPS and NAS. Release notes: https://github.com/peach-mitao/peach/releases/tag/v0.57.0",
"org.opencontainers.image.documentation": "https://github.com/peach-mitao/peach/blob/master/docs/DOCKER.md",
"org.opencontainers.image.licenses": "AGPL-3.0-or-later",
"org.opencontainers.image.revision": "062308362ffe7eace27ce62f77ac59e47a994338",
"org.opencontainers.image.source": "https://github.com/peach-mitao/peach",
"org.opencontainers.image.title": "Peach",
"org.opencontainers.image.url": "https://github.com/peach-mitao/peach/releases/tag/v0.57.0",
"org.opencontainers.image.version": "0.57.0"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 1193253205,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/5c9598242ef5c873b936d1e65291d6a4eeccc9bef6793eaf324dd1e8a0430c24/diff:/var/lib/docker/overlay2/8c3c22ff881836bbffbfed0684bcf96ab8b97cc2995ff2870bb32f100dcf3689/diff:/var/lib/docker/overlay2/647937e179445590a92e875060b336669df0b1a69562dd0fac5e7c3c412c1fe0/diff:/var/lib/docker/overlay2/d0c3c89817a66a4c611aff4237b303d39466a25cbd41317c83ed7b21c299e3c0/diff:/var/lib/docker/overlay2/5611407b5efed10b442247c08ebf1e5f0e921dcc941cd598d55118cb4d327062/diff:/var/lib/docker/overlay2/51437eecd27ea807f579e87ea9e1d07595598cc4e68376f994db25c93eb79eb6/diff:/var/lib/docker/overlay2/e478e1598d6266bbb89fb0da71cc548a526e2de2e3beb653187fee3702ae54f3/diff:/var/lib/docker/overlay2/768ba60efa33bd9131a02b1d1644ce7386ece41693e756f0f92d9a13832085e5/diff:/var/lib/docker/overlay2/8c7d3651014d94f0c243307f28218122b0cf2ebe8b11ee222eef4e57e6866bda/diff:/var/lib/docker/overlay2/6c2633df9e477a8420fece585d3aa6a4cc5c50ae27bbbf21723ceb6edd852987/diff:/var/lib/docker/overlay2/41b1662330b655762eb4dbcb489f274d3076dcfe2732e8909c48b2e6310e03e4/diff:/var/lib/docker/overlay2/88847951aeca6effc509bb0114d6327eec49c6355482fb2f7622137bad35cf0f/diff:/var/lib/docker/overlay2/5683e9e870addad8debc05582059d19da846c3a801c9d583de5eb2da938a4569/diff:/var/lib/docker/overlay2/6acc637907c89b13f6c7e6cb980b844c1d498eb55c1eefb356b50549fe706a10/diff",
"MergedDir": "/var/lib/docker/overlay2/a2fa8c5ef080894295fb98d306827cb998ded479eb0e8faa522ba32c3460a33c/merged",
"UpperDir": "/var/lib/docker/overlay2/a2fa8c5ef080894295fb98d306827cb998ded479eb0e8faa522ba32c3460a33c/diff",
"WorkDir": "/var/lib/docker/overlay2/a2fa8c5ef080894295fb98d306827cb998ded479eb0e8faa522ba32c3460a33c/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:a70f6272827f64e1427d048ced77491aab5d64ab95725e56920802ff391197d7",
"sha256:030c481775c3da83178d9dad16fd7af7e66174fd50a34bb92d1b9d24b7b10356",
"sha256:ebaf40d6c40b2616e5219e952f2f39d06856432f65fa31e5fde6dd44b22ccc4b",
"sha256:5d127dfabfd831a533d00dfa112af18a23dec37b04a9069ea7c8e15a97c13960",
"sha256:9c7b31ae01c71fa962513b01ce38bf245333d1e377bc1956588a8dad3ad9fd19",
"sha256:7df890fe2bacf668e312d241865484fea8c061630a29651115b8f072b3229608",
"sha256:a2d693e5cda1a495f47596af085bc0e7dedf87df043ae8f1cc63dadae3f52c36",
"sha256:c9304487dd8eb579d2f3de784f605199a4c36b4d7563c5175ac1a31da58a0002",
"sha256:3b8b2d34067ae4f3f6804f0ededc2af21613eb57c3cdd5f13109af1d626c19db",
"sha256:0019bb49313534fc24580dfa6cca6dd0898e9dbb8862c798bd3ae87ac7ba2851",
"sha256:0df67ff57e775ce04fe81dfa61779a1b22d33608b3f03dd8709edc5985aaf67e",
"sha256:a5fd8759720acca13d35e33f9e22af5d0c3d0bcaefe7a61c4d1b99545cd5bc58",
"sha256:390dda526e0639065af2a67e74b48fb4344fe7ed39fc85c44fcd28361d3e792d",
"sha256:060d7c55581a8ebcbee0322a9c8b0b5aacff78b895c221d2a89cfc354a47e0e5",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"
]
},
"Metadata": {
"LastTagTime": "2026-11-12T18:46:43.647929827+08:00"
}
}