镜像构建历史
# 2026-03-03 15:01:22 0.00B 设置默认要执行的命令
CMD ["python3" "start_server.py"]
# 2026-03-03 15:01:22 0.00B 声明容器运行时监听的端口
EXPOSE map[8000/tcp:{}]
# 2026-03-03 15:01:22 2.64MB 复制新文件或目录到容器中
COPY /app/dist/ /app/miloco_server/static/ # buildkit
# 2026-03-03 15:01:22 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-03-03 15:01:17 36.65MB 复制新文件或目录到容器中
COPY miot_kit /app/miot_kit # buildkit
# 2026-03-03 15:01:17 1.41KB 复制新文件或目录到容器中
COPY scripts/start_server.py /app/start_server.py # buildkit
# 2026-03-03 15:01:17 16.09KB 复制新文件或目录到容器中
COPY config/prompt_config.yaml /app/config/prompt_config.yaml # buildkit
# 2026-03-03 15:01:17 2.68KB 复制新文件或目录到容器中
COPY config/server_config.yaml /app/config/server_config.yaml # buildkit
# 2026-03-03 15:01:17 871.84KB 复制新文件或目录到容器中
COPY miloco_server /app/miloco_server # buildkit
# 2026-03-03 15:01:17 0.00B 设置工作目录为/app
WORKDIR /app
# 2026-03-03 15:01:17 1.10GB 执行命令并创建新的镜像层
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-03-03 14:58:22 753.00B 复制新文件或目录到容器中
COPY miot_kit/pyproject.toml /app/miot_kit/pyproject.toml # buildkit
# 2026-03-03 14:58:22 1.60KB 复制新文件或目录到容器中
COPY miloco_server/pyproject.toml /app/miloco_server/pyproject.toml # buildkit
# 2026-03-03 14:58:22 0.00B 设置工作目录为/app
WORKDIR /app
# 2026-03-03 14:58:22 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-03-03 14:58:22 0.00B 设置环境变量 TZ
ENV TZ=Asia/Shanghai
# 2026-03-03 14:58:22 0.00B 定义构建参数
ARG PIP_INDEX_URL
# 2026-02-25 03:47:55 0.00B 设置默认要执行的命令
CMD ["python3"]
# 2026-02-25 03:47:55 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-25 03:47:55 36.77MB 执行命令并创建新的镜像层
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-25 03:39:06 0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4
# 2026-02-25 03:39:06 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.12.12
# 2026-02-25 03:39:06 0.00B 设置环境变量 GPG_KEY
ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
# 2026-02-25 03:39:06 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-02-25 03:39:06 0.00B 设置环境变量 LANG
ENV LANG=C.UTF-8
# 2026-02-25 03:39:06 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-02-23 08:00:00 78.62MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1771804800'
镜像信息
{
"Id": "sha256:08828b73501bfdd0cfdea690becda5f6cda6c13c873fffd2ae73db18dab5ccb2",
"RepoTags": [
"ghcr.io/xiaochao99/miloco-backend:v0.2.2",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/xiaochao99/miloco-backend:v0.2.2"
],
"RepoDigests": [
"ghcr.io/xiaochao99/miloco-backend@sha256:3abaf858f4dd2c2d1ab3c516f8c5f4b1170343933cb56ca628c0299b586c82b4",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/xiaochao99/miloco-backend@sha256:c529231e83416b6a4a0011d3cae277b70002281770f4f2c6cc7019cdc7fe07ed"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-03-03T07:01:22.455035195Z",
"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": "amd64",
"Os": "linux",
"Size": 1255181966,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/8c780023a19430119d0a9d7218bdf9f3b8c986522e03f692e3a549581326df9b/diff:/var/lib/docker/overlay2/1a98eaeca1b3f9661426f58f70814371972a2836991f3c86a5c34d29dd47c557/diff:/var/lib/docker/overlay2/501eac323280f721f05d304334a427b11dfcfd457d7868349749c10837091340/diff:/var/lib/docker/overlay2/d4eb2133bd4635bdecab6f05175fcf2bdf3ffe805264143642080a98e023df1c/diff:/var/lib/docker/overlay2/11fe3ae78458cb86e60bdb002fbdbe0db8c37f952468fc7f4f18c81ddb2f1bbe/diff:/var/lib/docker/overlay2/870349761ab63038fc6f7f7b50c1174c5253760136d9c755c05faed94535d2ae/diff:/var/lib/docker/overlay2/2e73a298824ba5e78f794d2dd3a30846cc2f2685b0f292003802d3c1807798ba/diff:/var/lib/docker/overlay2/2a4b842a20f3861485a69b93f73c6014a8fa13d7c969680fb441a8711dfe3e0f/diff:/var/lib/docker/overlay2/da2e8710ca5ffa0ec4998f42b5f9cb8df78be68fdf277332ecddc5f6f17f1484/diff:/var/lib/docker/overlay2/a1b17646a1b9ab8663682d8b1d2135f4d72c431435827508fe3a8baf69e9986d/diff:/var/lib/docker/overlay2/162ebd1e7f331295632c201828ad3e8b26026f70e0c1e68f514b3aea7f8003dd/diff:/var/lib/docker/overlay2/260c92c430dfc5433c925f1dd3d4aa9c5842d2301c4aff4ea029e5fddd76eec4/diff:/var/lib/docker/overlay2/dcc24203a130f5b1a53d1053e5bc0395aa4f646798e60018f64b7f75cc6b1470/diff:/var/lib/docker/overlay2/89799749e721a72028d54728d821bd544f71795f976080fbb29327ee7e8d7ac0/diff:/var/lib/docker/overlay2/722f30e3f9127450a366f942323f6c4885367c5839fd0b91e42c04c859a07a9a/diff:/var/lib/docker/overlay2/9b8a4306595a99a1b9f96b2ba4bd601f20559197c31d705b32978f069eab618f/diff",
"MergedDir": "/var/lib/docker/overlay2/6e52e5e95ed56341bde5df0eb10949f3d42e1162bb76caf7d61cd1878f016cd5/merged",
"UpperDir": "/var/lib/docker/overlay2/6e52e5e95ed56341bde5df0eb10949f3d42e1162bb76caf7d61cd1878f016cd5/diff",
"WorkDir": "/var/lib/docker/overlay2/6e52e5e95ed56341bde5df0eb10949f3d42e1162bb76caf7d61cd1878f016cd5/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:a257f20c716c7b5d0474b1b5998f4d1090b573d90b82f764b8f1f1faeb4b524f",
"sha256:38d85a17b1111a95a0e407827441c6aa9da43d09ff3f1af3febe8017c4c8ffe7",
"sha256:c2a9fa0f49e59ec1a12af4d7e17adbd07a451685187864014235a8506b2c05de",
"sha256:a78468ad3279eed5c50477c62f98d1273a0fb7dfb383ad1c4b21c24bb3f908d1",
"sha256:87cdd74877c0f7ca5e0feb24bc5e61e29329f5ba9ff6f6e1007c26a634361eab",
"sha256:2374c5a58e2caec8bdc335a2a53430e994e5bfd5e8c04c23036415868476fd6d",
"sha256:9b87f2ef402780c222073519e8f327a1754a27aec484c4a413df15be57225919",
"sha256:4732b2db8443001c8f9eec60537f59eceb0309e5c274ed6e5cf49eeae07404c7",
"sha256:13ba93f053db9b6606dab08cd671bf4b2f5b0ce52e11f254051dd3e8bffbc037",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:26858aee43c4fa6da59ffbef078954582b6a553d735bbad188c7c88d07b93d8b",
"sha256:c63ddaad7bb2470160a5df5e3f3502beff555a37cd9e9b1cc92b6052e914c336",
"sha256:51840ed3cac13d96ac0ee63daaa329ec07c12186bf78b8976dc7528d92077e10",
"sha256:694bceabfaded09ae6528ba49f5a7b9fc1c17970aad2bc131cd29cf89eb0fc7c",
"sha256:4c2bbce37eb534248b592f3bf5ac9c3cbca7b1799763dce8780c9d2473b49c81",
"sha256:f112bb28e12b061446dbb0463ef923b43127f678e18b548ab47007de4a345ae0",
"sha256:f9619d454335fb1f174dbf87c32ec1023df9a612cc5a7b12fa6dcdd34a9f835f"
]
},
"Metadata": {
"LastTagTime": "2026-03-03T15:36:37.235529698+08:00"
}
}