镜像构建历史
# 2025-11-14 18:32:55 0.00B 设置默认要执行的命令
CMD ["python3" "start_server.py"]
# 2025-11-14 18:32:55 0.00B 声明容器运行时监听的端口
EXPOSE map[8000/tcp:{}]
# 2025-11-14 18:32:55 2.47MB 复制新文件或目录到容器中
COPY /app/dist/ /app/miloco_server/static/ # buildkit
# 2025-11-14 18:32:55 13.69KB 执行命令并创建新的镜像层
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
# 2025-11-14 18:32:52 10.45MB 复制新文件或目录到容器中
COPY miot_kit /app/miot_kit # buildkit
# 2025-11-14 18:32:52 1.41KB 复制新文件或目录到容器中
COPY scripts/start_server.py /app/start_server.py # buildkit
# 2025-11-14 18:32:52 13.50KB 复制新文件或目录到容器中
COPY config/prompt_config.yaml /app/config/prompt_config.yaml # buildkit
# 2025-11-14 18:32:52 1.69KB 复制新文件或目录到容器中
COPY config/server_config.yaml /app/config/server_config.yaml # buildkit
# 2025-11-14 18:32:52 517.92KB 复制新文件或目录到容器中
COPY miloco_server /app/miloco_server # buildkit
# 2025-11-14 18:32:52 0.00B 设置工作目录为/app
WORKDIR /app
# 2025-11-14 18:32:51 939.65MB 执行命令并创建新的镜像层
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
# 2025-11-14 18:31:04 753.00B 复制新文件或目录到容器中
COPY miot_kit/pyproject.toml /app/miot_kit/pyproject.toml # buildkit
# 2025-11-14 18:31:04 1.49KB 复制新文件或目录到容器中
COPY miloco_server/pyproject.toml /app/miloco_server/pyproject.toml # buildkit
# 2025-11-14 18:31:04 0.00B 设置工作目录为/app
WORKDIR /app
# 2025-11-14 18:31:04 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
# 2025-11-14 18:31:04 0.00B 设置环境变量 TZ
ENV TZ=Asia/Shanghai
# 2025-11-14 18:31:04 0.00B 定义构建参数
ARG PIP_INDEX_URL
# 2025-11-04 12:32:14 0.00B 设置默认要执行的命令
CMD ["python3"]
# 2025-11-04 12:32:14 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
# 2025-11-04 12:32:13 36.76MB 执行命令并创建新的镜像层
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
# 2025-11-04 12:23:01 0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4
# 2025-11-04 12:23:01 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.12.12
# 2025-11-04 12:23:01 0.00B 设置环境变量 GPG_KEY
ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
# 2025-11-04 12:23:01 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
# 2025-11-04 12:23:01 0.00B 设置环境变量 LANG
ENV LANG=C.UTF-8
# 2025-11-04 12:23:01 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-11-04 04:44:10 78.62MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1762202650'
镜像信息
{
"Id": "sha256:54c577438bf94ec256d5fc5437f50732c7f9c1e83782488fd7c6ad05b7a62817",
"RepoTags": [
"ghcr.io/xiaomi/miloco-backend:latest",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/xiaomi/miloco-backend:latest"
],
"RepoDigests": [
"ghcr.io/xiaomi/miloco-backend@sha256:020476a83264d4f66dbed0213254bba37eea46971228de8c100cdb494605e823",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/xiaomi/miloco-backend@sha256:020476a83264d4f66dbed0213254bba37eea46971228de8c100cdb494605e823"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-11-14T10:32:55.231375331Z",
"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": 1072310247,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/24552cb38342c0d6e57307bdb5d98b28edb095802dc568ae182c4986fe5f9097/diff:/var/lib/docker/overlay2/2d5b9a976aad74bd2ce0bd1adb429a417533b0f69181699b8db7aefdea321cbe/diff:/var/lib/docker/overlay2/b60d3c0f5e8a61172789cbfc01b94707e5ae7171ac363ba1c2b04e7e5197b8b7/diff:/var/lib/docker/overlay2/3d4717a4ef269031f485b89512e2e29acde375ea7deea22cc8b36a46a5b789a3/diff:/var/lib/docker/overlay2/4db2ca01bef9408d3a8a82f06c2a5d52175572057e0861e7eca4873a7809c3ff/diff:/var/lib/docker/overlay2/faab19d85fcd7fb86a2bdd276cae8e7d96422f5e512ad3db4b2a578973a0db25/diff:/var/lib/docker/overlay2/3003d68a6e6b148c2725d88cfef74675f3a5fea4378bfc4e4488ae7f0f999f92/diff:/var/lib/docker/overlay2/b93d326e28887cb3d538899894e5092f311c8f254daf4ae44d5f826b25cea7a5/diff:/var/lib/docker/overlay2/da2befae71beacd4e94269b10b078e741b0d37c475d2bab0d3df31b3236c808e/diff:/var/lib/docker/overlay2/2477a54b31feefd5cf7feebe63c8c6392f0a6555c39a0a6a11f791b66a5b6e55/diff:/var/lib/docker/overlay2/3732c9d91cd9b6b4554086afb45ea8386caefff923e7094d259e06d6055c8225/diff:/var/lib/docker/overlay2/8a08503e4f5b7f9619169e8ca6a97663c84eae027e0abb9883c43d1c9b537aba/diff:/var/lib/docker/overlay2/c9c15363abb65554941392533cc50b22afda8581dae98b18afc99b0fe942462e/diff:/var/lib/docker/overlay2/43a49b220317ddd369c5e7e061b7f7de13ff47edcadc930a8ac58ea9bb57048f/diff:/var/lib/docker/overlay2/958e68557c95cd95455028771857f28e27bb756d2d657efee8a88e72e8390337/diff:/var/lib/docker/overlay2/1765b9753da7db9bb8140b12d9e98b677a29d0974efef13311a5c31eecfe5028/diff",
"MergedDir": "/var/lib/docker/overlay2/287c8674691ee2198366619ff7c0a8aba1f36aae8855da4fb31465729f4dae75/merged",
"UpperDir": "/var/lib/docker/overlay2/287c8674691ee2198366619ff7c0a8aba1f36aae8855da4fb31465729f4dae75/diff",
"WorkDir": "/var/lib/docker/overlay2/287c8674691ee2198366619ff7c0a8aba1f36aae8855da4fb31465729f4dae75/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:36d06fe0cbc654e5f67d58c960ed33e53127e4a3288d8ce6f6a60a9c311794d4",
"sha256:c50bad64b1f936327290f8df4206b1c0a257a91e5b5e67dbede790791645463c",
"sha256:979c20da630872f1330a8c6bd5b84b81f5690ebca7c7145f6d0c76e04424b633",
"sha256:1188393d057565287c30ba71f4d69bb2df2a3cdde0ea34fc77f8d9c7ac97d4b7",
"sha256:d2d32367a762fe18c6854b77de952fbe7930e0f9627761bbc02d11a964a4c69e",
"sha256:d477d6bd2e415f361da5ab4019a206676a328ff8e2680e0bc20c66bbed00ba9a",
"sha256:56dc1ed80e4112423e2a18396be51afd6bab0e90ccd1cf64dceb5287c5ceec75",
"sha256:bd5d0c6d1e25b00a12a6b6c62a1611cb1c1d3b3073a30e4292c88e25f00feb93",
"sha256:706b54a7b1025f3b56ead00fda9deb641a731ff8c8a0412ce8ba7275374aba8f",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:5fc20780d0fac0fa5b5efbd97afc8d815a33cf5ef415d25c5003a317bef6c421",
"sha256:79ccf3d3fe38155029a1797db8d802562d50c3ad41c385aadb9f50c3d93b0091",
"sha256:8926f80283c335c8fe88cbbf0b479c4e58c805d00be8e18e398db21eb07f5ed5",
"sha256:c031a8452908531ff00446477fdfd6ed7d02750aaa269a0256c618de73d0b4ad",
"sha256:08bc42667e02e6abfa9bae5655ea7674ea3929d184d1902dd0e9d6b0fbd4f15f",
"sha256:f42ecea56915f9f864c6dea7e3a45daa9b46e3614e4a2ac8f1f373a913381dbd",
"sha256:aac3ba798b7c20a5e6510fbf296609a87ecc820170326c1bdd0977827f8908b2"
]
},
"Metadata": {
"LastTagTime": "2025-11-16T12:39:53.813936877+08:00"
}
}