镜像构建历史
# 2025-09-22 19:15:49 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["python" "bot.py"]
# 2025-09-22 19:15:49 0.00B 声明容器运行时监听的端口
EXPOSE &{[{{30 0} {30 0}}] 0xc000146740}
# 2025-09-22 19:15:49 6.35MB 复制新文件或目录到容器中
COPY . . # buildkit
# 2025-09-22 19:15:49 257.19MB 执行命令并创建新的镜像层
RUN /bin/sh -c uv pip install --system -r requirements.txt # buildkit
# 2025-09-22 19:15:44 10.81MB 执行命令并创建新的镜像层
RUN /bin/sh -c uv pip install --system --upgrade pip # buildkit
# 2025-09-22 19:15:44 27.43MB 执行命令并创建新的镜像层
RUN /bin/sh -c cd /MaiMBot-LPMM/lib/quick_algo && python build_lib.py --cleanup --cythonize --install # buildkit
# 2025-09-22 19:15:24 106.24KB 执行命令并创建新的镜像层
RUN /bin/sh -c uv pip install --system Cython py-cpuinfo setuptools # buildkit
# 2025-09-22 19:15:24 667.79MB 执行命令并创建新的镜像层
RUN /bin/sh -c cd /MaiMBot-LPMM && uv pip install --system -r requirements.txt # buildkit
# 2025-09-22 19:15:19 392.77MB 执行命令并创建新的镜像层
RUN /bin/sh -c apt-get update && apt-get install -y build-essential # buildkit
# 2025-09-22 19:15:03 469.04KB 复制新文件或目录到容器中
COPY MaiMBot-LPMM /MaiMBot-LPMM # buildkit
# 2025-09-22 19:15:03 482.00B 复制新文件或目录到容器中
COPY requirements.txt . # buildkit
# 2025-09-22 19:15:02 0.00B 设置工作目录为/MaiMBot
WORKDIR /MaiMBot
# 2025-09-22 19:15:02 49.51MB 复制新文件或目录到容器中
COPY /uv /uvx /bin/ # buildkit
# 2025-06-12 05:49:27 0.00B 设置默认要执行的命令
CMD ["python3"]
# 2025-06-12 05:49:27 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-06-12 05:49:27 36.67MB 执行命令并创建新的镜像层
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-linux-musl' && 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 -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
# 2025-06-12 05:49:27 0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=93e583f243454e6e9e4588ca2c2662206ad961659863277afcdb96801647d640
# 2025-06-12 05:49:27 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.13.5
# 2025-06-12 05:49:27 0.00B 设置环境变量 GPG_KEY
ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
# 2025-06-12 05:49:27 9.25MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; rm -rf /var/lib/apt/lists/* # buildkit
# 2025-06-12 05:49:27 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-06-12 05:49:27 74.81MB
# debian.sh --arch 'amd64' out/ 'bookworm' '@1753056000'
镜像信息
{
"Id": "sha256:c2f90a8386d21a503e0f8401a23838ddef998f88c81d993922fdd1bb399ec963",
"RepoTags": [
"ghcr.io/ckylinmc/maimbot:build-20250922111458",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/ckylinmc/maimbot:build-20250922111458"
],
"RepoDigests": [
"ghcr.io/ckylinmc/maimbot@sha256:176ec23e21197f9a9e5d647d73794057df9cc87a02daf5496f91cd5b9cef1cd9",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/ckylinmc/maimbot@sha256:4f82ab5aaf0f30e4b568ce3afe573942d11c6de4a8a9c1e184f9a476172ee781"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-09-22T11:15:49.333373688Z",
"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",
"GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305",
"PYTHON_VERSION=3.13.5",
"PYTHON_SHA256=93e583f243454e6e9e4588ca2c2662206ad961659863277afcdb96801647d640"
],
"Cmd": null,
"Image": "",
"Volumes": null,
"WorkingDir": "/MaiMBot",
"Entrypoint": [
"python",
"bot.py"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.created": "2025-09-22T11-14-58",
"org.opencontainers.image.revision": "9d7ab32275b6fa0612dd3db44c9e4a1b1d101da6"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 1533151974,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/8147310d34ce5288c71402f80b5b47ea6d6c4df0f35b41149169e25bcd17b1c9/diff:/var/lib/docker/overlay2/d0f465719ab740c087cc35fb46e67214f7d5d573facde5b512052b44438fb287/diff:/var/lib/docker/overlay2/a4747e3416b2ef9ec4207fba2660e9d44c17d870ad6ae194c1ec4f0cdc0fc110/diff:/var/lib/docker/overlay2/bd6125d0341505255476c9afd4d232ce50fe99c09853bfe14c587a655f8ed8b2/diff:/var/lib/docker/overlay2/13432af3c839250d88e86d89fde109e35b0bb247c55747743655f7d4beb85582/diff:/var/lib/docker/overlay2/c2e6dbde1d598a33cfea95968683bdec89cc2bb83b592b73e6d103290e941426/diff:/var/lib/docker/overlay2/5de7483dd5c8f43158dff19bf4525c3a47ae924b3b18878954173364af0547ea/diff:/var/lib/docker/overlay2/5131b25df2b4a57132e5d2d7536025146037a3109281ad88da2420977722cb1b/diff:/var/lib/docker/overlay2/c3351c1fe049fcf7c806134532c408f916614b4f22e7238bc689bf82d0abecc5/diff:/var/lib/docker/overlay2/cf2250da05c98dc50dfc6fc2f20a1332ea0bcef5f86f74520b17d2d0e33a556f/diff:/var/lib/docker/overlay2/67b5509d1db40d290bcbdea976151dc8471faad75a80d22f797de35799ad0821/diff:/var/lib/docker/overlay2/fbf37a0e4ce525c0e0e2fe9397730c81e2be2d44369a4f6906e2ffc96e8608c1/diff:/var/lib/docker/overlay2/d17eb0200e0fad1760f6c4f256d3a406d8f01c33adab41c96aa15a9856d7ea39/diff:/var/lib/docker/overlay2/78f84327c675385035d735018d8f3e092b1a95be91b6e02564557eb58a1c2945/diff",
"MergedDir": "/var/lib/docker/overlay2/bca17e424d604d2c4bb43083b7dc769b79e2100ac46beaa7e071bb7ef17c356d/merged",
"UpperDir": "/var/lib/docker/overlay2/bca17e424d604d2c4bb43083b7dc769b79e2100ac46beaa7e071bb7ef17c356d/diff",
"WorkDir": "/var/lib/docker/overlay2/bca17e424d604d2c4bb43083b7dc769b79e2100ac46beaa7e071bb7ef17c356d/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:7cc7fe68eff66f19872441a51938eecc4ad33746d2baa3abc081c1e6fe25988e",
"sha256:9621f68f1f5ddfd1fa67faa2a5c513986b9d4b015f06999152893fc9bcefb093",
"sha256:547f1fc1a2bb7ad4fbecb26c04a6ba82c067e668e79ab229bd932745636781c7",
"sha256:7d8e4ce94100ff12329e91295efd7fb69bfc45c0525dd1ff94e577a22903d44c",
"sha256:8f02602572b1e3a96e0193ba05cc93229e21df719dbb43cd8bbc43f3656a53fd",
"sha256:9649bc533191f9286a12a435e69fd5c646b8d53b9604b3b00d8aac66f4805508",
"sha256:662fcab731e005a7db1c93409e272e12a3376f08e11e7e5c7a36aa36042ee168",
"sha256:06c4ef3b8a7f3b60e0fa3c75ded40d4f45fc2c68dc98d0a699456c52223bcccd",
"sha256:7e7f8428d8198a9dd86e862c4e34269832d2a00f84c2b2ce7e8961167c503f26",
"sha256:8ef1e42a31e207949c06532827f171ece4b8cff6eff0592cdf48c7b0e9b523bf",
"sha256:29ec085575c4c3c2a44ed2772de0cd2bf7429a66208a03fffcd5c2e319e84809",
"sha256:3927c13ea72815d0876ec2ceb73bc34356f7640e06e6c9a77724798fb8058522",
"sha256:4c1ed5e366983ace0285d2a1698fa85694821d37ee643e942c3fc9baf8ec0c1c",
"sha256:693dfb836f2994651adc391f24371747d9bab00fe73227e2f64875ac834c0f15",
"sha256:737a502afd6d15e3b82569def8cfed14a0606e943b3667f46ace7ae449f91141"
]
},
"Metadata": {
"LastTagTime": "2025-09-22T19:24:58.289825704+08:00"
}
}