镜像构建历史
# 2026-02-14 13:34:34 0.00B 设置默认要执行的命令
CMD ["python3" "start_server.py"]
# 2026-02-14 13:34:34 0.00B 声明容器运行时监听的端口
EXPOSE map[8000/tcp:{}]
# 2026-02-14 13:34:34 2.60MB 复制新文件或目录到容器中
COPY /app/dist/ /app/miloco_server/static/ # buildkit
# 2026-02-14 13:34:34 14.59KB 执行命令并创建新的镜像层
RUN /bin/sh -c pip install --no-build-isolation -e /app/miloco_server && pip install --no-build-isolation -e /app/miot_kit && rm -rf /app/miloco_server/static && rm -rf /app/miloco_server/.temp && rm -rf /app/miloco_server/.log # buildkit
# 2026-02-14 13:33:46 36.65MB 复制新文件或目录到容器中
COPY miot_kit /app/miot_kit # buildkit
# 2026-02-14 13:33:46 1.41KB 复制新文件或目录到容器中
COPY scripts/start_server.py /app/start_server.py # buildkit
# 2026-02-14 13:33:46 16.09KB 复制新文件或目录到容器中
COPY config/prompt_config.yaml /app/config/prompt_config.yaml # buildkit
# 2026-02-14 13:33:46 2.68KB 复制新文件或目录到容器中
COPY config/server_config.yaml /app/config/server_config.yaml # buildkit
# 2026-02-14 13:33:46 865.83KB 复制新文件或目录到容器中
COPY miloco_server /app/miloco_server # buildkit
# 2026-02-14 13:33:46 0.00B 设置工作目录为/app
WORKDIR /app
# 2026-02-14 13:33:45 994.72MB 执行命令并创建新的镜像层
RUN |1 PIP_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple /bin/sh -c pip config set global.index-url "${PIP_INDEX_URL}" && pip install --upgrade pip setuptools wheel && pip install --no-build-isolation /app/miloco_server && pip install --no-build-isolation /app/miot_kit && rm -rf /app/miloco_server && rm -rf /app/miot_kit # buildkit
# 2026-02-14 13:21:35 753.00B 复制新文件或目录到容器中
COPY miot_kit/pyproject.toml /app/miot_kit/pyproject.toml # buildkit
# 2026-02-14 13:21:35 1.60KB 复制新文件或目录到容器中
COPY miloco_server/pyproject.toml /app/miloco_server/pyproject.toml # buildkit
# 2026-02-14 13:21:35 0.00B 设置工作目录为/app
WORKDIR /app
# 2026-02-14 13:21:35 47.00B 执行命令并创建新的镜像层
RUN |1 PIP_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple /bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # buildkit
# 2026-02-14 13:21:35 0.00B 设置环境变量 TZ
ENV TZ=Asia/Shanghai
# 2026-02-14 13:21:35 0.00B 定义构建参数
ARG PIP_INDEX_URL
# 2026-02-05 04:29:11 0.00B 设置默认要执行的命令
CMD ["python3"]
# 2026-02-05 04:29:11 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-02-05 04:29:11 40.03MB 执行命令并创建新的镜像层
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"; 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-02-05 04:17:37 0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4
# 2026-02-05 04:17:37 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.12.12
# 2026-02-05 04:17:37 0.00B 设置环境变量 GPG_KEY
ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
# 2026-02-05 04:17:37 3.86MB 执行命令并创建新的镜像层
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-02-05 04:17:37 0.00B 设置环境变量 LANG
ENV LANG=C.UTF-8
# 2026-02-05 04:17:37 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-02-02 08:00:00 100.50MB
# debian.sh --arch 'arm64' out/ 'trixie' '@1769990400'
镜像信息
{
"Id": "sha256:b66a2d73e0e6aad144e9cf189c8b55361804f51e08a7fb5a6537be29c881a73a",
"RepoTags": [
"ghcr.io/xiaochao99/miloco-backend:v0.2.1",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/xiaochao99/miloco-backend:v0.2.1-linuxarm64"
],
"RepoDigests": [
"ghcr.io/xiaochao99/miloco-backend@sha256:d044ea18fd90a410e7713ae88fa490c6c757adc5ad9d0c2b40406bbdd169e048",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/xiaochao99/miloco-backend@sha256:4e82310624b6a9255ce019b8a844089b5c16c012a5d89ec38152d78146a0e7eb"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-02-14T05:34:34.562128417Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8000/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=7169605F62C751356D054A26A821E680E5FA6305",
"PYTHON_VERSION=3.12.12",
"PYTHON_SHA256=fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4",
"TZ=Asia/Shanghai"
],
"Cmd": [
"python3",
"start_server.py"
],
"ArgsEscaped": true,
"Image": "",
"Volumes": null,
"WorkingDir": "/app",
"Entrypoint": null,
"OnBuild": null,
"Labels": null
},
"Architecture": "arm64",
"Os": "linux",
"Size": 1179262689,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/c8ade766ca7fecb4e3a4eafe0a797338f26ee93263af48773af231d12d37730d/diff:/var/lib/docker/overlay2/b513286edb964d800214598685e6c08e4adefef62dee3f71a32ff5847997a189/diff:/var/lib/docker/overlay2/1ee60d27c102afa101cc863ea57fef9377a8683518ea594f3bef40e608f43143/diff:/var/lib/docker/overlay2/2becba23c5ee250ee8ac76a983c299d34ae475a2c54b3cec56951d59ba9174db/diff:/var/lib/docker/overlay2/68dbd8b7c9de0a09b63960d3a9740abd2af06f4dd1020df6ce3838d2e11f94e5/diff:/var/lib/docker/overlay2/da83b2158e7ed6cedd202105c72623d04238bd8e4c16ec6f4cd74ec23e678dd9/diff:/var/lib/docker/overlay2/a3d6228c16f4f42ce47c868b4470576c4688911682841a633b2fdb8b316984e7/diff:/var/lib/docker/overlay2/65d0abe307fb0b63c33755a7659c2803746cc8df71f741a9a0291fc40239022e/diff:/var/lib/docker/overlay2/f6adf73ff72149d75969bf864fb13ba6285d6984c2d7259e6726d416d241e4a5/diff:/var/lib/docker/overlay2/13a147cae3c6d45032fd9d11229e450b84cce7f2195581f8aac0d8042275a5d8/diff:/var/lib/docker/overlay2/fae57cde46adbc363e1ee0164c5767e8e90109e6e9ebdad4d11bfdf41687e3bd/diff:/var/lib/docker/overlay2/6c8c6664acb62f5a2f4db7be354507d3ab389115f485a649f9c8d457c3232229/diff:/var/lib/docker/overlay2/e56c086a7c4f7e285d893d56672e39ba5f768fa2917bfcefef8a96e6bea104cc/diff:/var/lib/docker/overlay2/0ec4555ea015614094577e1ebfb58ddb77a3f79bcaa5ab2eb9399cf57c5a86d0/diff:/var/lib/docker/overlay2/45f77c45f1811a3893ebaa51ba5f2b2f4e17e25cb49f7bee0cb9c83c9879fcdf/diff:/var/lib/docker/overlay2/dc53a523ee234cf737ab7ddff9aa8fff3aa5f34384988645987d07acaf579143/diff",
"MergedDir": "/var/lib/docker/overlay2/cc3f849a5965047b716902a8652722190a590074d2c7f0338f1a836282e552b5/merged",
"UpperDir": "/var/lib/docker/overlay2/cc3f849a5965047b716902a8652722190a590074d2c7f0338f1a836282e552b5/diff",
"WorkDir": "/var/lib/docker/overlay2/cc3f849a5965047b716902a8652722190a590074d2c7f0338f1a836282e552b5/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:a0e71ab2b234a0a129f2ffad77cc70f7c0b9c618ff3d6d84c01be4535fdeb1dc",
"sha256:066116c873215bc622fdb185607a65c65b22e17ad2e5c8c99d6e85e2e62b16ee",
"sha256:75ac67faae8c737fc8bc8b06329ce060a9917258e86451211cf758d54c1c91fb",
"sha256:89090684d9d368ada4669f1113df8a6284eb93a6f0e26eaf6f4c969fcc1f3dec",
"sha256:2e6cbb239fcf0071d3323a7ce94e4bfa745b014412214ccd4e6e4f5d76b03157",
"sha256:7e3f8b1fbc56bab6fa9b2e8743986e172d486aae7f1f2556f2ed330be41a8a13",
"sha256:9a0fd7c1cc463c082cc47303830e0d2be95f3a4791a42383840b51f8bcdab313",
"sha256:6c6b7c9b060c433ae2bf413223f8e62bb60708e144352b9eae5fac34c6943817",
"sha256:8e525aaf76f1f7429dd0f51627423d9f6a59c3cc4e79379952fda009e52fe447",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:bd32dc87dd33ab5aedc37436dcb78e3372511a7f1056f608121a5905698d3c88",
"sha256:ce4ad29f58f9543e9762e3836e6bfe9cade6be2ef3f8f9bae79ff68999c39e8e",
"sha256:8687d90feff900043ef27615a618de23125859eb6b26f4cd66573d343746394d",
"sha256:129835e4d2d266037212fd91bb60420ba50e7c2abe3c25f5ac497f98ef3cd606",
"sha256:3ea82c0978898b76442749a2cb7d2486072cd339535543055c88a56be120c216",
"sha256:e0e339644f7c7d5b080918094659e1c09ce073ac791dd9c30ba161ac3356a163",
"sha256:1240fc1903a86c6aafe68e1a2b94cf861dc91e054c863d8df53ff7a269d020c4"
]
},
"Metadata": {
"LastTagTime": "2026-03-03T09:33:09.835157345+08:00"
}
}