镜像构建历史
# 2025-08-03 22:17:20 0.00B 设置默认要执行的命令
CMD ["sh" "-c" "python /usr/src/app/run.py"]
# 2025-08-03 22:17:20 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/usr/src/app/config]
# 2025-08-03 22:17:20 0.00B 设置环境变量 TZ
ENV TZ=CST-8
# 2025-08-03 22:17:20 0.00B 声明容器运行时监听的端口
EXPOSE map[80/tcp:{}]
# 2025-08-03 22:17:20 0.00B 设置环境变量 PORT
ENV PORT=80
# 2025-08-03 22:17:20 119.39MB 执行命令并创建新的镜像层
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:51 0.00B 设置工作目录为/usr/src/app
WORKDIR /usr/src/app
# 2025-08-03 22:14:51 560.00B 复制文件或目录到容器中
ADD ssh/qd_fetch.pub /root/.ssh/id_rsa.pub # buildkit
# 2025-08-03 22:14:51 2.45KB 复制文件或目录到容器中
ADD ssh/qd_fetch /root/.ssh/id_rsa # buildkit
# 2025-08-03 22:14:51 0.00B 添加元数据标签
LABEL org.opencontainers.image.source=https://github.com/qd-today/qd
# 2025-08-03 22:14:51 0.00B 添加元数据标签
LABEL maintainer=a76yyyy <q981331502@163.com>
# 2024-02-09 01:16:54 33.37MB 执行命令并创建新的镜像层
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 01:16:54 0.00B 设置环境变量 CURL_VERSION
ENV CURL_VERSION=8.6.0
# 2024-02-09 01:16:54 0.00B 设置环境变量 SSL_VERSION
ENV SSL_VERSION=3.1.5
# 2024-02-09 01:16:54 0.00B 设置环境变量 PYCURL_SSL_LIBRARY
ENV PYCURL_SSL_LIBRARY=openssl
# 2024-02-09 01:16:54 0.00B 添加元数据标签
LABEL org.opencontainers.image.source=https://github.com/qiandao-today/pycurl-docker
# 2024-02-09 01:16:54 0.00B 添加元数据标签
LABEL maintainer=a76yyyy <q981331502@163.com>
# 2024-02-08 20:48:42 575.24MB 执行命令并创建新的镜像层
RUN |2 TARGETARCH=amd64 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:48:42 0.00B 定义构建参数
ARG DDDDOCR_VERSION=master
# 2024-02-08 20:48:42 0.00B 定义构建参数
ARG TARGETARCH
# 2024-02-08 20:48:42 0.00B 添加元数据标签
LABEL org.opencontainers.image.source=https://github.com/qd-today/ddddocr-docker
# 2024-02-08 20:48:42 0.00B 添加元数据标签
LABEL maintainer=a76yyyy <q981331502@163.com>
# 2023-12-20 16:48:17 0.00B
/bin/sh -c #(nop) CMD ["/bin/sh"]
# 2023-12-20 16:48:17 7.38MB
/bin/sh -c #(nop) ADD file:8d267ecc5c308e11f1e3cbec8a98748c6c0abd6ec8afb0830244773f58409e63 in /
镜像信息
{
"Id": "sha256:e7fbff9b5e962fd3666deb9b3406b3d436c2b51703eacb509ccca98317164f16",
"RepoTags": [
"a76yyyy/qiandao:latest",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/a76yyyy/qiandao:latest"
],
"RepoDigests": [
"a76yyyy/qiandao@sha256:9711373a891d843758495d4704a195289fc42154a0b0ed9747d3beafc9004b76",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/a76yyyy/qiandao@sha256:37fb8f8be102f9e565ec1b7ae68a43d04c166369b1313c00a90dad914427eb9e"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-08-03T14:17:20.972469534Z",
"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": "amd64",
"Os": "linux",
"Size": 735384196,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/d4ee2f01d51b9a14e28c2aa05eefb4509d6fcf0933672d548073fac40ae614ec/diff:/var/lib/docker/overlay2/6a9d6554fec893fc12f877a601697f4b896964f6ffbd8bb9c8a856e637497a6f/diff:/var/lib/docker/overlay2/7be078abfec80492cdb5fff8772770a6150041771dcd4d5ccdcb4abf333cd657/diff:/var/lib/docker/overlay2/88a5e8fccd45a1049a1038134d1cce01b14facf98e414c122bbb3f1b927e671e/diff:/var/lib/docker/overlay2/7820c7187dc08c17b66820628c92113f893a6ade9f5150a4476c02a69fca5d4f/diff:/var/lib/docker/overlay2/8dbca975cd6df3905acb4d5ad62b342f57263c8a136d4c3ccd3af0b28eae276e/diff",
"MergedDir": "/var/lib/docker/overlay2/9de81556f3f0cb69c124dfae17df3cc20c710657d4e67cd5ec1a6998605b9d75/merged",
"UpperDir": "/var/lib/docker/overlay2/9de81556f3f0cb69c124dfae17df3cc20c710657d4e67cd5ec1a6998605b9d75/diff",
"WorkDir": "/var/lib/docker/overlay2/9de81556f3f0cb69c124dfae17df3cc20c710657d4e67cd5ec1a6998605b9d75/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:1bb475414a7e92af2a683b7864916ccb9fa4155aa029b4b7fc3b10d35ce93739",
"sha256:87a132e3aab7730580eaf6b0738eb2c04dac96deebbd5c4b43dbd82b01f19e85",
"sha256:b4da13a5b5ff4646f952e7b06b43e7e79204261652e573d5b5350a3e25bbcdde",
"sha256:a3c845793704efbde112b1f1d2eb0b8f9d9bcea5673b64312551a630c9f4c8d3",
"sha256:5ce6dfb42eae504c3d004a2854716b05d06b799e545f9926f57222f09a0fb923",
"sha256:8aa16cf04bfe023c44dc54e5c38496ab11f57892be3f9096ca0b2e12e8ed6cc8",
"sha256:5e71b7b12709e39dde9f723b2c115f17fa05b323aba77075c4e38c8dce6fc5cd"
]
},
"Metadata": {
"LastTagTime": "2025-08-04T21:34:36.334585765+08:00"
}
}