镜像构建历史
# 2025-08-03 22:20:36 0.00B 设置默认要执行的命令
CMD ["sh" "-c" "python /usr/src/app/run.py"]
# 2025-08-03 22:20:36 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/usr/src/app/config]
# 2025-08-03 22:20:36 0.00B 设置环境变量 TZ
ENV TZ=CST-8
# 2025-08-03 22:20:36 0.00B 声明容器运行时监听的端口
EXPOSE map[80/tcp:{}]
# 2025-08-03 22:20:36 0.00B 设置环境变量 PORT
ENV PORT=80
# 2025-08-03 22:20:36 126.21MB 执行命令并创建新的镜像层
RUN /bin/sh -c sed -i 's/mirrors.ustc.edu.cn/dl-cdn.alpinelinux.org/g' /etc/apk/repositories && sed -i 's/edge/v3.19/g' /etc/apk/repositories && sed -i '/testing/d' /etc/apk/repositories && apk update && apk add --update --no-cache openssh-client && chmod 600 /root/.ssh/id_rsa && ssh-keyscan gitee.com > /root/.ssh/known_hosts && let num=$RANDOM%100+10 && sleep $num && git clone --depth 1 git@gitee.com:qd-today/qd.git /gitclone_tmp && yes | cp -rf /gitclone_tmp/. /usr/src/app && rm -rf /gitclone_tmp && chmod +x /usr/src/app/update.sh && ln -s /usr/src/app/update.sh /bin/update && apk add --update --no-cache openssh-client python3 py3-six py3-markupsafe py3-pycryptodome py3-tornado py3-wrapt py3-packaging py3-greenlet py3-urllib3 py3-cryptography py3-aiosignal py3-async-timeout py3-attrs py3-frozenlist py3-multidict py3-charset-normalizer py3-aiohttp py3-typing-extensions py3-yarl py3-cffi && [[ $(getconf LONG_BIT) = "32" ]] && echo "Tips: 32-bit systems do not support ddddocr, so there is no need to install numpy and opencv-python" || apk add --update --no-cache py3-numpy-dev py3-opencv py3-pillow && apk add --no-cache --virtual .build_deps cmake make perl autoconf g++ automake py3-pip py3-setuptools py3-wheel python3-dev linux-headers libtool util-linux && sed -i '/ddddocr/d' requirements.txt && sed -i '/packaging/d' requirements.txt && sed -i '/wrapt/d' requirements.txt && sed -i '/pycryptodome/d' requirements.txt && sed -i '/tornado/d' requirements.txt && sed -i '/MarkupSafe/d' requirements.txt && sed -i '/pillow/d' requirements.txt && sed -i '/opencv/d' requirements.txt && sed -i '/numpy/d' requirements.txt && sed -i '/greenlet/d' requirements.txt && sed -i '/urllib3/d' requirements.txt && sed -i '/cryptography/d' requirements.txt && sed -i '/aiosignal/d' requirements.txt && sed -i '/async-timeout/d' requirements.txt && sed -i '/attrs/d' requirements.txt && sed -i '/frozenlist/d' requirements.txt && sed -i '/multidict/d' requirements.txt && sed -i '/charset-normalizer/d' requirements.txt && sed -i '/aiohttp/d' requirements.txt && sed -i '/typing-extensions/d' requirements.txt && sed -i '/yarl/d' requirements.txt && sed -i '/cffi/d' requirements.txt && pip install --no-cache-dir -r requirements.txt --break-system-packages && apk del .build_deps && sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && rm -rf /var/cache/apk/* && rm -rf /usr/share/man/* # buildkit
# 2025-08-03 22:14:50 0.00B 设置工作目录为/usr/src/app
WORKDIR /usr/src/app
# 2025-08-03 22:14:50 560.00B 复制文件或目录到容器中
ADD ssh/qd_fetch.pub /root/.ssh/id_rsa.pub # buildkit
# 2025-08-03 22:14:50 2.45KB 复制文件或目录到容器中
ADD ssh/qd_fetch /root/.ssh/id_rsa # buildkit
# 2025-08-03 22:14:50 0.00B 添加元数据标签
LABEL org.opencontainers.image.source=https://github.com/qd-today/qd
# 2025-08-03 22:14:50 0.00B 添加元数据标签
LABEL maintainer=a76yyyy <q981331502@163.com>
# 2024-02-09 03:34:46 34.18MB 执行命令并创建新的镜像层
RUN /bin/sh -c apk update && apk add --update --no-cache bash git tzdata ca-certificates python3 py3-six && apk add --update --no-cache --virtual .build_deps nano openssh-client cmake make perl autoconf g++ automake linux-headers libtool util-linux file libidn2-dev libgsasl-dev krb5-dev zstd-dev nghttp2-dev zlib-dev brotli-dev python3-dev py3-pip py3-setuptools py3-wheel c-ares-dev nghttp3-dev libpsl-dev && file /bin/busybox && [[ $(getconf LONG_BIT) = "64" && -z $(file /bin/busybox | grep -i "arm") ]] && libdir="lib64" || libdir="lib" && [[ $(getconf LONG_BIT) = "32" && -z $(file /bin/busybox | grep -i "arm") ]] && configtmp="setarch i386 ./config -m32" || configtmp="./config " && wget https://curl.haxx.se/download/curl-$CURL_VERSION.tar.bz2 && tar xjvf curl-$CURL_VERSION.tar.bz2 && rm curl-$CURL_VERSION.tar.bz2 && git clone --depth 1 -b openssl-$SSL_VERSION+quic https://github.com/quictls/openssl && git clone --depth 1 https://github.com/ngtcp2/ngtcp2 && cd openssl && echo $configtmp enable-tls1_3 --prefix=/usr && $configtmp enable-tls1_3 --prefix=/usr && make -j$(($(grep -c ^processor /proc/cpuinfo) - 0)) && make install_sw && cd .. && rm -rf openssl && cd ngtcp2 && git submodule update --init && autoreconf -fi && ./configure PKG_CONFIG_PATH=/usr/$libdir/pkgconfig LDFLAGS="-Wl,-rpath,/usr/$libdir" --prefix=/usr --enable-lib-only && make -j$(($(grep -c ^processor /proc/cpuinfo) - 0)) check && make install && cd .. && rm -rf ngtcp2 && cd curl-$CURL_VERSION && autoreconf -fi && LDFLAGS="-Wl,-rpath,/usr/$libdir" ./configure --with-openssl=/usr --with-nghttp2=/usr --with-nghttp3=/usr --with-ngtcp2=/usr --prefix=/usr --enable-ipv6 --enable-unix-sockets --with-libidn2 --disable-static --disable-ldap --with-pic --with-gssapi --enable-ares && make -j$(($(grep -c ^processor /proc/cpuinfo) - 0)) && make install && cd .. && rm -rf ./curl-$CURL_VERSION && [[ -n $(find /usr/lib64 -name libssl.so.*) ]] && { ln -s /usr/lib64/libssl.so.81.3 /usr/lib/ && ln -s /usr/lib64/libcrypto.so.81.3 /usr/lib/ ;} || echo "" && pip install --no-cache-dir --compile --break-system-packages pycurl && apk del .build_deps && apk add --update --no-cache libidn2 libgsasl zlib c-ares nghttp2 nghttp3 libpsl && rm -rf /var/cache/apk/* && rm -rf /usr/share/man/* # buildkit
# 2024-02-09 03:34:46 0.00B 设置环境变量 CURL_VERSION
ENV CURL_VERSION=8.6.0
# 2024-02-09 03:34:46 0.00B 设置环境变量 SSL_VERSION
ENV SSL_VERSION=3.1.5
# 2024-02-09 03:34:46 0.00B 设置环境变量 PYCURL_SSL_LIBRARY
ENV PYCURL_SSL_LIBRARY=openssl
# 2024-02-09 03:34:46 0.00B 添加元数据标签
LABEL org.opencontainers.image.source=https://github.com/qiandao-today/pycurl-docker
# 2024-02-09 03:34:46 0.00B 添加元数据标签
LABEL maintainer=a76yyyy <q981331502@163.com>
# 2024-02-08 20:49:41 540.71MB 执行命令并创建新的镜像层
RUN |2 TARGETARCH=arm64 DDDDOCR_VERSION=master /bin/sh -c sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && echo 'https://mirrors.ustc.edu.cn/alpine/edge/testing' >> /etc/apk/repositories && apk update && apk add --update --no-cache bash git tzdata ca-certificates file python3 py3-six && [[ "${TARGETARCH}" != "i386" ]] && [[ "${TARGETARCH}" != "s390x" ]] && { apk add --update --no-cache py3-pillow py3-onnxruntime py3-opencv libprotobuf-lite && apk add --update --no-cache --virtual .build_deps py3-pip py3-setuptools py3-wheel protobuf-dev py3-numpy-dev lld samurai build-base gcc python3-dev musl-dev linux-headers make && git clone --branch $DDDDOCR_VERSION https://github.com/sml2h3/ddddocr.git && cd /ddddocr && sed -i '/install_package_data/d' setup.py && sed -i '/install_requires/d' setup.py && sed -i '/python_requires/d' setup.py && pip install --no-cache-dir --compile --break-system-packages . && cd / && rm -rf /ddddocr && apk del .build_deps; } || { apk add --update --no-cache libprotobuf-lite && echo "Onnxruntime Builder does not currently support building i386 and s390x wheels";} && rm -rf /var/cache/apk/* && rm -rf /usr/share/man/* # buildkit
# 2024-02-08 20:49:41 0.00B 定义构建参数
ARG DDDDOCR_VERSION=master
# 2024-02-08 20:49:41 0.00B 定义构建参数
ARG TARGETARCH
# 2024-02-08 20:49:41 0.00B 添加元数据标签
LABEL org.opencontainers.image.source=https://github.com/qd-today/ddddocr-docker
# 2024-02-08 20:49:41 0.00B 添加元数据标签
LABEL maintainer=a76yyyy <q981331502@163.com>
# 2023-12-20 09:18:50 0.00B
/bin/sh -c #(nop) CMD ["/bin/sh"]
# 2023-12-20 09:18:50 7.73MB
/bin/sh -c #(nop) ADD file:4e8137413d9f18d24a8e5fdd22421b709b9cbd7b90be9decf20fa4449e7bb381 in /
镜像信息
{
"Id": "sha256:62b9285d9629540c271108e97525eb01047d7dd2fc4d6dcfc3782c8bddc1105f",
"RepoTags": [
"qdtoday/qd:20250803",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/qdtoday/qd:20250803-linuxarm64"
],
"RepoDigests": [
"qdtoday/qd@sha256:9711373a891d843758495d4704a195289fc42154a0b0ed9747d3beafc9004b76",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/qdtoday/qd@sha256:4522bdf274d89361d4b91e25b6a9d9bff7339f1aca9e85fbd5da8d7b2557e3d0"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-08-03T14:20:36.722743011Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"PYCURL_SSL_LIBRARY=openssl",
"SSL_VERSION=3.1.5",
"CURL_VERSION=8.6.0",
"PORT=80",
"TZ=CST-8"
],
"Cmd": [
"sh",
"-c",
"python /usr/src/app/run.py"
],
"ArgsEscaped": true,
"Image": "",
"Volumes": {
"/usr/src/app/config": {}
},
"WorkingDir": "/usr/src/app",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"maintainer": "a76yyyy \u003cq981331502@163.com\u003e",
"org.opencontainers.image.source": "https://github.com/qd-today/qd"
}
},
"Architecture": "arm64",
"Os": "linux",
"Size": 708842623,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/b99d839e24025d3b380815820fcb6bd71c70191122b91c33cb872e9160426b40/diff:/var/lib/docker/overlay2/b658ba5bbd3fd8ad8bfbaf93736bfb5f81d8260f8ea5c289a672d6c41891df52/diff:/var/lib/docker/overlay2/08f2e042973ea42a982b04b1c5c7a600e78d8f7a90fc6a6f0ed51fe8ab2ef339/diff:/var/lib/docker/overlay2/b5e720bf7143143621fb01547e07e120cd88166f1a1cc17985064c9242bd0fd3/diff:/var/lib/docker/overlay2/1ea76fde7d07945faa4e42060c281239038c942d21f687549efe2c97dc00451b/diff:/var/lib/docker/overlay2/76e5cac4ae69d5999e11584e3a27be000f445f04a9fe7fe3a40a73f679421c7d/diff",
"MergedDir": "/var/lib/docker/overlay2/8bb5866435c435b81dd3884f4b6840e4ee84c9de1ed0b783735fdb2069d727f6/merged",
"UpperDir": "/var/lib/docker/overlay2/8bb5866435c435b81dd3884f4b6840e4ee84c9de1ed0b783735fdb2069d727f6/diff",
"WorkDir": "/var/lib/docker/overlay2/8bb5866435c435b81dd3884f4b6840e4ee84c9de1ed0b783735fdb2069d727f6/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:2f7e86f9a990e093cc428d04381e03e3c0cf74715bcb4549304f17d20cde0fe0",
"sha256:47c1449315e5f6dd47d38f32324e0d6fee17801331a7c4f18aab2db6661f98ed",
"sha256:9155a5d6ca8153563948575634f601f7ad9cf93eff69d9dd17d3741a43629b54",
"sha256:d847f16dadd404fa9f88f2ad3f03dce73dd36ea3198191b29afd09532d87f35d",
"sha256:f8edf43a2cfb9031a9372c2532be4e6b4e1efa4ef850d480e5617580ca06dda5",
"sha256:61abd822fc7841447b765e5a67d17be1544f76a49ad0ded4c981af5598ab45dc",
"sha256:5f842f45feec1641f6fcd2e198b7351860f87411d5fbbe10d9e34284c901fe9d"
]
},
"Metadata": {
"LastTagTime": "2026-01-07T02:07:17.760990282+08:00"
}
}