镜像构建历史
# 2026-03-30 14:33:40 0.00B 设置默认要执行的命令
CMD ["python3" "start_server.py"]
# 2026-03-30 14:33:40 0.00B 声明容器运行时监听的端口
EXPOSE map[8000/tcp:{}]
# 2026-03-30 14:33:40 2.70MB 复制新文件或目录到容器中
COPY /app/dist/ /app/miloco_server/static/ # buildkit
# 2026-03-30 14:33:40 14.66KB 执行命令并创建新的镜像层
RUN /bin/sh -c pip install --no-build-isolation -e /app/miloco_server && if [ "${TARGETARCH}" = "amd64" ]; then pip install --no-cache-dir onnxruntime-openvino; else echo "Skip onnxruntime-openvino on ${TARGETARCH}"; fi && 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-30 14:33:35 36.65MB 复制新文件或目录到容器中
COPY miot_kit /app/miot_kit # buildkit
# 2026-03-30 14:33:35 1.41KB 复制新文件或目录到容器中
COPY scripts/start_server.py /app/start_server.py # buildkit
# 2026-03-30 14:33:35 16.09KB 复制新文件或目录到容器中
COPY config/prompt_config.yaml /app/config/prompt_config.yaml # buildkit
# 2026-03-30 14:33:35 3.09KB 复制新文件或目录到容器中
COPY config/server_config.yaml /app/config/server_config.yaml # buildkit
# 2026-03-30 14:33:35 918.23KB 复制新文件或目录到容器中
COPY miloco_server /app/miloco_server # buildkit
# 2026-03-30 14:33:35 0.00B 设置工作目录为/app
WORKDIR /app
# 2026-03-30 14:33:34 1.05GB 执行命令并创建新的镜像层
RUN |1 PIP_INDEX_URL=https://pypi.org/simple/ /bin/sh -c if [ -n "${PIP_INDEX_URL}" ]; then pip config set global.index-url "${PIP_INDEX_URL}"; fi && 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-30 14:32:26 753.00B 复制新文件或目录到容器中
COPY miot_kit/pyproject.toml /app/miot_kit/pyproject.toml # buildkit
# 2026-03-30 14:32:26 1.64KB 复制新文件或目录到容器中
COPY miloco_server/pyproject.toml /app/miloco_server/pyproject.toml # buildkit
# 2026-03-30 14:32:26 0.00B 设置工作目录为/app
WORKDIR /app
# 2026-03-30 14:32:26 47.00B 执行命令并创建新的镜像层
RUN |1 PIP_INDEX_URL=https://pypi.org/simple/ /bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # buildkit
# 2026-03-30 14:32:26 0.00B 设置环境变量 TZ
ENV TZ=Asia/Shanghai
# 2026-03-30 14:32:26 0.00B 定义构建参数
ARG PIP_INDEX_URL
# 2026-03-17 07:09:05 0.00B 设置默认要执行的命令
CMD ["python3"]
# 2026-03-17 07:09:05 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-03-17 07:09:05 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-03-17 07:00:43 0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=c08bc65a81971c1dd5783182826503369466c7e67374d1646519adf05207b684
# 2026-03-17 07:00:43 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.12.13
# 2026-03-17 07:00:43 0.00B 设置环境变量 GPG_KEY
ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
# 2026-03-17 07:00:43 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-03-17 07:00:43 0.00B 设置环境变量 LANG
ENV LANG=C.UTF-8
# 2026-03-17 07:00:43 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-03-16 08:00:00 78.61MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1773619200'
镜像信息
{
"Id": "sha256:6ee1b36edb615adc4ee6ce8c8f97c443550daf8c4b0b1b6f0c874f038817304b",
"RepoTags": [
"ghcr.io/xiaochao99/miloco-backend:v0.2.4",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/xiaochao99/miloco-backend:v0.2.4"
],
"RepoDigests": [
"ghcr.io/xiaochao99/miloco-backend@sha256:be845eac2ffbe28135f695623ddd41fd7189ade81240f35097093a419c628455",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/xiaochao99/miloco-backend@sha256:09e5313152bffd4c60829689df2217d65a42410b86f6a9b653c9c374bb793b22"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-03-30T06:33:40.448389531Z",
"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.13",
"PYTHON_SHA256=c08bc65a81971c1dd5783182826503369466c7e67374d1646519adf05207b684",
"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": 1207614710,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/a202d03d520abe25947c09086dcc8fa42838c05286ef01bb3319639f88d3769d/diff:/var/lib/docker/overlay2/15376d085085f8c1dec57a4d19c30092316a32ad522ee851755ab9af338e7c68/diff:/var/lib/docker/overlay2/d5f41b0e0a645e32e23efce17f28360eae71a8b3e4dbd9284a2c9211c29c6551/diff:/var/lib/docker/overlay2/0e37f59c11c052fd8c8857745dde21bf2e12c85c28af217c45462852c0779b15/diff:/var/lib/docker/overlay2/882bf73f37bc295cba572d02c8f75479d1f28c6923fc3123595d22bb8f4adc5d/diff:/var/lib/docker/overlay2/733ad1938cfe6696409bb0862b68e2010a46f23494b420778ff472a330304de9/diff:/var/lib/docker/overlay2/9e9fda05821c93b31fe3b2660440a22e8edbca0f5f3a4ebac0d4efc19982513e/diff:/var/lib/docker/overlay2/4f4ca344cf31db5b13af923b279e9b25f97a08fa9e6d134e26c0597e65b3c372/diff:/var/lib/docker/overlay2/460bf969e18dc97862900931689b4ae9711b264707edf80aba55fd611209a503/diff:/var/lib/docker/overlay2/64ecbdedf2c0643ad310b6f6fb2d4dd07b94a9d73dc84cc18f44837d9709e206/diff:/var/lib/docker/overlay2/a9dcba574b4e9f400ad4d803958c498f4e9d5155de25c23630403c0516b4cd7f/diff:/var/lib/docker/overlay2/970b59f93739e9f86d6b97250c600cf1015396cb736880c24b5dfa46de6843a4/diff:/var/lib/docker/overlay2/9c6163407c639e18621133c6e5dbff9894c89cac92a18a4f81d32007d5f7c9cd/diff:/var/lib/docker/overlay2/5d6eae97e809984e01e80f4bddd3c7151a62e28ce1a9752bb25f60e2845e0122/diff:/var/lib/docker/overlay2/783969055eeb4cbd12c3bc54cc3509c08eb0383923fd46f4175870be98b7eb79/diff:/var/lib/docker/overlay2/232bca50a309f7afc81af9dd4c38b4ed2e3f3351b4afa40f679597eb42090496/diff",
"MergedDir": "/var/lib/docker/overlay2/4e813f943c98a5a8111a777e20f098614cbbb09f666e336b1496c72295102e28/merged",
"UpperDir": "/var/lib/docker/overlay2/4e813f943c98a5a8111a777e20f098614cbbb09f666e336b1496c72295102e28/diff",
"WorkDir": "/var/lib/docker/overlay2/4e813f943c98a5a8111a777e20f098614cbbb09f666e336b1496c72295102e28/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:188c9b34dfbe022075d01fc4f5a305412909ef97de440783c15043e68e1b1913",
"sha256:1c107a897b02ca7ece069bfef2339f4e02f95f12dbb025da7305fcbe2b626f34",
"sha256:481070cf8ce5b1834cf16a80eec044aced637a96ef8cd1e3c193947e2ff5cbd9",
"sha256:addf8d91bd2117a572c640e2bd2e0d15c7adf862773498ca0aea234b7a32528e",
"sha256:2be59927bd5d7ea905288fee64289992fad56bafa4472ca232cc7ea938b2e5c0",
"sha256:ff9e0bb12a84e5537cdcd798d0a82c0cbd21bf87b80392a3e6fba926d62564ea",
"sha256:7455b272c512e74f34124c15aabf07c74c0bdecdff267110880e6a511ebeae8a",
"sha256:23550253a605fe7d8d3e69b540ce050f83e953fff2233ea794c3bf52dad168c5",
"sha256:1c5262da61eb4d82b0bb6ec1ddb4e108b2c4f2391a2ba2aca2be6304a1fe4f75",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:6a5b4ad6782160d610802671d70d75216ae608e50a4e7b1f9f833187cbbe75a8",
"sha256:4480d7106f9c45d913fde7d9a42739964e3d66d18ba0dcfa07d745d9e5d62ff5",
"sha256:291f9685c4d47817c5c562fb2bdc4fe158ae942ab2706d784e7bb61f5f0c4536",
"sha256:74ee4617177e47c40d6da995cff9d149682cea936df53198ef809a4f6baee907",
"sha256:55ba8be13e8ddbd1926520170f0fba01d3482798a346d71a4187f7e060cc12bb",
"sha256:b5d464dcdb9886abb37bded43b166161e8b9bf93f6f4366f00a1cd3d58c6c1b7",
"sha256:9543a782591afb25270b2b8470f6921a1bd763c5bb5a233e73ce59a0421664fa"
]
},
"Metadata": {
"LastTagTime": "2026-04-03T11:07:14.016290862+08:00"
}
}