镜像构建历史
# 2026-10-27 16:21:24 0.00B 设置默认要执行的命令
CMD ["sh" "-c" "access_log_arg=--no-access-log; if [ \"${APP_ENV:-development}\" != \"production\" ] || [ \"${ACCESS_LOG:-false}\" = \"true\" ]; then access_log_arg=--access-log; fi; exec uvicorn main:app --host \"$HOST\" --port \"$PORT\" --workers \"$WORKERS\" --log-level \"$LOG_LEVEL\" \"$access_log_arg\" --timeout-keep-alive \"${TIMEOUT_KEEP_ALIVE:-5}\" --proxy-headers --forwarded-allow-ips \"${FORWARDED_ALLOW_IPS:-}\""]
# 2026-10-27 16:21:24 0.00B 声明容器运行时监听的端口
EXPOSE [12345/tcp]
# 2026-10-27 16:21:24 0.00B 设置环境变量 HOST PORT WORKERS APP_ENV LOG_LEVEL ACCESS_LOG FORWARDED_ALLOW_IPS TIMEOUT_KEEP_ALIVE MALLOC_TRIM_THRESHOLD_
ENV HOST=0.0.0.0 PORT=12345 WORKERS=1 APP_ENV=production LOG_LEVEL=warning ACCESS_LOG=false FORWARDED_ALLOW_IPS= TIMEOUT_KEEP_ALIVE=5 MALLOC_TRIM_THRESHOLD_=65536
# 2026-10-27 16:21:24 81.41MB 执行命令并创建新的镜像层
RUN |4 APP_VERSION=2.8.5 VCS_REF=8d3e4ad904c289c1852f08c3424ae370642c58c3 FRONTEND_2024_REF=2d6173e0d4fe4d543479143842408abb50bd5f9b FRONTEND_2023_REF=81ec1cb2b525d805064dafcdedc544ba1286e29b /bin/sh -c apt-get update && apt-get upgrade -y --no-install-recommends && rm -rf /var/lib/apt/lists/* && pip install --no-cache-dir --require-hashes -r requirements.lock.txt && pip cache purge || true # buildkit
# 2026-10-27 16:21:11 3.70MB 复制新文件或目录到容器中
COPY /build/fronted-2023/dist ./themes/2023 # buildkit
# 2026-10-27 16:21:11 1.00MB 复制新文件或目录到容器中
COPY /build/FileCodeBox/themes/2024 ./themes/2024 # buildkit
# 2026-10-27 16:09:54 47.00B 执行命令并创建新的镜像层
RUN |4 APP_VERSION=2.8.5 VCS_REF=8d3e4ad904c289c1852f08c3424ae370642c58c3 FRONTEND_2024_REF=2d6173e0d4fe4d543479143842408abb50bd5f9b FRONTEND_2023_REF=81ec1cb2b525d805064dafcdedc544ba1286e29b /bin/sh -c ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone # buildkit
# 2026-10-27 16:09:54 0.00B 设置环境变量 APP_VERSION
ENV APP_VERSION=2.8.5
# 2026-10-27 16:09:54 419.85KB 复制新文件或目录到容器中
COPY . . # buildkit
# 2026-10-27 16:09:53 0.00B 设置工作目录为/app
WORKDIR /app
# 2026-10-27 16:09:53 0.00B 添加元数据标签
LABEL org.opencontainers.image.filecodebox.frontend-2023-revision=81ec1cb2b525d805064dafcdedc544ba1286e29b
# 2026-10-27 16:09:53 0.00B 添加元数据标签
LABEL org.opencontainers.image.filecodebox.frontend-2024-revision=2d6173e0d4fe4d543479143842408abb50bd5f9b
# 2026-10-27 16:09:53 0.00B 添加元数据标签
LABEL org.opencontainers.image.revision=8d3e4ad904c289c1852f08c3424ae370642c58c3
# 2026-10-27 16:09:53 0.00B 添加元数据标签
LABEL org.opencontainers.image.version=2.8.5
# 2026-10-27 16:09:53 0.00B 添加元数据标签
LABEL email=xzu@live.com
# 2026-10-27 16:09:53 0.00B 添加元数据标签
LABEL author=Lan
# 2026-10-27 16:09:53 0.00B 定义构建参数
ARG FRONTEND_2023_REF=81ec1cb2b525d805064dafcdedc544ba1286e29b
# 2026-10-27 16:09:53 0.00B 定义构建参数
ARG FRONTEND_2024_REF=2d6173e0d4fe4d543479143842408abb50bd5f9b
# 2026-10-27 16:09:53 0.00B 定义构建参数
ARG VCS_REF=8d3e4ad904c289c1852f08c3424ae370642c58c3
# 2026-10-27 16:09:53 0.00B 定义构建参数
ARG APP_VERSION=2.8.5
# 2026-10-27 06:55:16 0.00B 设置默认要执行的命令
CMD ["python3"]
# 2026-10-27 06:55:16 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-10-27 06:55:16 40.27MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev g++ 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; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
# 2026-10-27 06:46:39 0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=b5796915dc45ff745cfb4e990a7e7c93d6f546328a102ce31448d69ebc37575c
# 2026-10-27 06:46:39 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.12.16
# 2026-10-27 06:46:39 0.00B 设置环境变量 GPG_KEY
ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
# 2026-10-27 06:46:39 11.00MB 执行命令并创建新的镜像层
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
# 2026-10-27 06:46:39 0.00B 设置环境变量 LANG
ENV LANG=C.UTF-8
# 2026-10-27 06:46:39 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-10-21 05:32:55 74.87MB
# debian.sh --arch 'amd64' out/ 'bookworm' '@1792531975'
镜像信息
{
"Id": "sha256:50db65477a1972f6ef44e5f7f742702d28246c0cfa1c3fb54ec6a2970b209205",
"RepoTags": [
"lanol/filecodebox:2.8.5",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/lanol/filecodebox:2.8.5"
],
"RepoDigests": [
"lanol/filecodebox@sha256:f9186d44437004544f15bbaf784415895779a36ae3f5eb32d23886af8053bf7d",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/lanol/filecodebox@sha256:0ca4af89d22a550b738bf9d0ec78e86a225692c3cba121fe64907987fb779b70"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-10-27T08:21:24.187559716Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"12345/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.16",
"PYTHON_SHA256=b5796915dc45ff745cfb4e990a7e7c93d6f546328a102ce31448d69ebc37575c",
"APP_VERSION=2.8.5",
"HOST=0.0.0.0",
"PORT=12345",
"WORKERS=1",
"APP_ENV=production",
"LOG_LEVEL=warning",
"ACCESS_LOG=false",
"FORWARDED_ALLOW_IPS=",
"TIMEOUT_KEEP_ALIVE=5",
"MALLOC_TRIM_THRESHOLD_=65536"
],
"Cmd": [
"sh",
"-c",
"access_log_arg=--no-access-log; if [ \"${APP_ENV:-development}\" != \"production\" ] || [ \"${ACCESS_LOG:-false}\" = \"true\" ]; then access_log_arg=--access-log; fi; exec uvicorn main:app --host \"$HOST\" --port \"$PORT\" --workers \"$WORKERS\" --log-level \"$LOG_LEVEL\" \"$access_log_arg\" --timeout-keep-alive \"${TIMEOUT_KEEP_ALIVE:-5}\" --proxy-headers --forwarded-allow-ips \"${FORWARDED_ALLOW_IPS:-}\""
],
"ArgsEscaped": true,
"Image": "",
"Volumes": null,
"WorkingDir": "/app",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"author": "Lan",
"email": "xzu@live.com",
"org.opencontainers.image.created": "2026-10-27T08:09:37.556Z",
"org.opencontainers.image.description": "文件快递柜-匿名口令分享文本,文件,像拿快递一样取文件(FileCodeBox - File Express Cabinet - Anonymous Passcode Sharing Text, Files, Like Taking Express Delivery for Files)",
"org.opencontainers.image.filecodebox.frontend-2023-revision": "81ec1cb2b525d805064dafcdedc544ba1286e29b",
"org.opencontainers.image.filecodebox.frontend-2024-revision": "2d6173e0d4fe4d543479143842408abb50bd5f9b",
"org.opencontainers.image.licenses": "LGPL-3.0",
"org.opencontainers.image.revision": "8d3e4ad904c289c1852f08c3424ae370642c58c3",
"org.opencontainers.image.source": "https://github.com/vastsa/FileCodeBox",
"org.opencontainers.image.title": "FileCodeBox",
"org.opencontainers.image.url": "https://github.com/vastsa/FileCodeBox",
"org.opencontainers.image.version": "2.8.5"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 212679753,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/014f4f963d41b1ee3450eb26b2681cec6f6f97667be64a63ffca33090bad6605/diff:/var/lib/docker/overlay2/b240a54aee7b9fb112ea9d9e3b3605380285537efb6cddb4dcbfde07f8a06a49/diff:/var/lib/docker/overlay2/df498dd0e328478c44b7fda40fa85165985cba65d599c5b35700855cf3353194/diff:/var/lib/docker/overlay2/e178d98684bce73452fe04eda9da1772e89cb8f37cb668f80af81c2ba96b1ef1/diff:/var/lib/docker/overlay2/e19073ddcdf734ad3537a8da4d3d216ae6d7be721fcdc54157eb1812ed40bf2d/diff:/var/lib/docker/overlay2/fcd334bca5a4ea5d7b3b9e00d7fac3c103ec1dbaeffbc445b3f06a430ed04d95/diff:/var/lib/docker/overlay2/dbc8d8c6de31592bfa3950f7806ee79fc8c4eac0fd6adb28b69d72586adccb87/diff:/var/lib/docker/overlay2/19bf333c6b076973c236c91af880681e12cef1be3188c387c81f4eebbff3cee2/diff:/var/lib/docker/overlay2/b2216d44a9675cf123eaa580b984e0074abdd4bcf6cd52646b570dc63aa54916/diff",
"MergedDir": "/var/lib/docker/overlay2/2dbef72e1ca1a0d1d1724dee4f6356b8feb55bef9eab13cffce4ef0cefe11b63/merged",
"UpperDir": "/var/lib/docker/overlay2/2dbef72e1ca1a0d1d1724dee4f6356b8feb55bef9eab13cffce4ef0cefe11b63/diff",
"WorkDir": "/var/lib/docker/overlay2/2dbef72e1ca1a0d1d1724dee4f6356b8feb55bef9eab13cffce4ef0cefe11b63/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:9b35de7893378218e365c34c2c735fb0032a859112fb7345ca8ea73f9aa1db70",
"sha256:b3bae30c55ab87d0887c31deb8ed934c6637fe340ec75564273305a0e6f0b6db",
"sha256:dd564072af8b37c8132b585d23c74d2f353750e45cd711fff6273f98f1cbc0fd",
"sha256:18c85da906679018f8e4cdb2802f5d195ae7e6fec20d42af1f6875d9604a65b0",
"sha256:302aa804c3c741cef3ccf30223d3dacfae48c2a95b1e7c4350b1faf4aef45931",
"sha256:302c1fd2df37667a92dfd21402011184d21fb6447c083157425ea0db6d8aa405",
"sha256:ebab53eb354ad7e4ccb7bf13e7ca81201f11ac242c5d54d39a3958dd012c12c0",
"sha256:d0d5ae1afbb4d4800f3c89b3c7b8d1e878157f5c20ff2beca96cdbf0a34b1064",
"sha256:427c81244fca9454624e0f4bc605e8889e8398bf3df5b823ec524fc0df49213e",
"sha256:8c189353de0e9461d624b4c561b83a09b23aa067bd2042d5a06cd34fcb66374c"
]
},
"Metadata": {
"LastTagTime": "2026-11-13T13:57:24.797368613+08:00"
}
}