镜像构建历史
# 2026-08-26 16:15:55 0.00B 设置默认要执行的命令
CMD ["/app/scripts/docker-entrypoint.sh"]
# 2026-08-26 16:15:55 0.00B 声明容器运行时监听的端口
EXPOSE map[1455/tcp:{} 2455/tcp:{}]
# 2026-08-26 16:15:55 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c test -z "$(find /app/app /app/config /app/scripts -type f ! -readable -print -quit)" # buildkit
# 2026-08-26 16:15:55 0.00B 指定运行容器时使用的用户
USER app
# 2026-08-26 16:15:55 38.00B 执行命令并创建新的镜像层
RUN /bin/sh -c chmod +x /app/scripts/docker-entrypoint.sh && printf '%s\n' '#!/bin/sh' 'exec python -m app.cli "$@"' > /usr/local/bin/codex-lb && chmod +x /usr/local/bin/codex-lb # buildkit
# 2026-08-26 16:15:55 2.48MB 复制新文件或目录到容器中
COPY --chown=app:app /app/app/static app/static # buildkit
# 2026-08-26 16:15:35 149.59KB 复制新文件或目录到容器中
COPY --chown=app:app scripts scripts # buildkit
# 2026-08-26 16:15:34 384.00B 复制新文件或目录到容器中
COPY --chown=app:app config config # buildkit
# 2026-08-26 16:15:34 7.22MB 复制新文件或目录到容器中
COPY --chown=app:app app app # buildkit
# 2026-08-26 16:15:34 175.21MB 复制新文件或目录到容器中
COPY /opt/venv /opt/venv # buildkit
# 2026-08-26 16:15:33 8.92KB 执行命令并创建新的镜像层
RUN /bin/sh -c adduser --disabled-password --gecos "" app && mkdir -p /var/lib/codex-lb && chown -R app:app /var/lib/codex-lb # buildkit
# 2026-08-26 16:15:32 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c python -m pip uninstall -y pip setuptools wheel || true && rm -f /usr/local/bin/pip /usr/local/bin/pip3 /usr/local/bin/pip3.13 && rm -rf /usr/local/lib/python*/site-packages/pip* /usr/local/lib/python*/site-packages/setuptools* /usr/local/lib/python*/site-packages/wheel* # buildkit
# 2026-08-26 16:15:28 9.67MB 执行命令并创建新的镜像层
RUN /bin/sh -c apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --only-upgrade bsdutils libblkid1 libc-bin libc6 libcap2 libmount1 libsmartcols1 libssl3t64 libsystemd0 libudev1 libuuid1 openssl sed util-linux && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends openssl-provider-legacy && rm -rf /var/lib/apt/lists/* # buildkit
# 2026-08-26 16:15:14 0.00B 设置工作目录为/app
WORKDIR /app
# 2026-08-26 16:15:14 0.00B 设置环境变量 PYTHONDONTWRITEBYTECODE PYTHONUNBUFFERED PATH
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-08-25 09:15:06 0.00B 设置默认要执行的命令
CMD ["python3"]
# 2026-08-25 09:15:06 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-08-25 09:15:06 37.03MB 执行命令并创建新的镜像层
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 libzstd-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 -; 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
# 2026-08-25 09:08:20 0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=3b48dac8fb59f62eaa67ac83c1eb12bda1b7a08406dd286e252c11a66be27f81
# 2026-08-25 09:08:20 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.14.7
# 2026-08-25 09:08:20 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
# 2026-08-25 09:08:20 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-08-24 08:00:00 78.64MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1787529600'
镜像信息
{
"Id": "sha256:210557d53f117b99259751f2458bb98f25b49f16ad025e5aa97d326c022862e7",
"RepoTags": [
"ghcr.io/soju06/codex-lb:latest",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/soju06/codex-lb:latest"
],
"RepoDigests": [
"ghcr.io/soju06/codex-lb@sha256:ba5598aaa70f7acf74a958139037604621ec2582a7fb5fe1e870f08bece807d6",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/soju06/codex-lb@sha256:050163c6f98f51919703cd3deef9ff7c1bfc8d803bc0fea380ae326e48e076b6"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-08-26T08:15:55.565026314Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "app",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"1455/tcp": {},
"2455/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"PYTHON_VERSION=3.14.7",
"PYTHON_SHA256=3b48dac8fb59f62eaa67ac83c1eb12bda1b7a08406dd286e252c11a66be27f81",
"PYTHONDONTWRITEBYTECODE=1",
"PYTHONUNBUFFERED=1"
],
"Cmd": [
"/app/scripts/docker-entrypoint.sh"
],
"ArgsEscaped": true,
"Image": "",
"Volumes": null,
"WorkingDir": "/app",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"org.opencontainers.image.created": "2026-08-26T08:15:08.202Z",
"org.opencontainers.image.description": "Codex/ChatGPT multiple account load balancer \u0026 proxy with usage tracking, dashboard, and OpenCode-compatible endpoints",
"org.opencontainers.image.licenses": "MIT",
"org.opencontainers.image.revision": "84fde5a1ed5e0d5a58ccb3ec4b82938b059bf8c5",
"org.opencontainers.image.source": "https://github.com/Soju06/codex-lb",
"org.opencontainers.image.title": "codex-lb",
"org.opencontainers.image.url": "https://github.com/Soju06/codex-lb",
"org.opencontainers.image.version": "1.24.0"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 314229990,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/8059aa40f861e703823175261b88fa8c56f5b9d58ee3cbbad03fed158314277e/diff:/var/lib/docker/overlay2/a512f33363c448e744334b2667fce55b6f575f5a5522df156918dcdee4fc723f/diff:/var/lib/docker/overlay2/907da9688625f54098f2d25d0bcd57f68505ac7ee9200a54082ec015667d6e62/diff:/var/lib/docker/overlay2/72cd52ad1ab17092616746b1827b304784b81bfd5e3dfd71f4551d3690b8f0ee/diff:/var/lib/docker/overlay2/a2053a986b27e5eadbea58b7174423b555a510a0a6a0d935bfa5db020483eb9f/diff:/var/lib/docker/overlay2/4d76624480e6eb743060664986af78ac8667d5782d2a44e857ed91720425d8db/diff:/var/lib/docker/overlay2/ea22ce1988dc0cf26d25a122fc1bcc963f591334ed569f949b7c7c7a5a49ed14/diff:/var/lib/docker/overlay2/3f570647a1465a677c9a8eb1931f4d74359102dfcdebf549c07fcefc9698a579/diff:/var/lib/docker/overlay2/a2171be6cb2855f81f507ad70b54460c6aa15ae278ee627ed4978393f82eac66/diff:/var/lib/docker/overlay2/ac9ce6cf610f042d8d58b423e1e145c8693742def0d529a7d02e10c71360e146/diff:/var/lib/docker/overlay2/86b91bc24034538d7b779eebedada9e8f279100ab64bab907dbbdea898ba80ab/diff:/var/lib/docker/overlay2/e536eb90cb1c73c3c3902b09260341664ed72d9fa1bbdb508c766d2c433594ad/diff:/var/lib/docker/overlay2/519f448cca52132a83c73f5b84ebc718c92a78f326e993421b8d14ffe5df75f5/diff:/var/lib/docker/overlay2/c2a696dacdcd5b8480d9f883645aef5d7f18bb808ab62a8bfbe4920c17c72905/diff",
"MergedDir": "/var/lib/docker/overlay2/96e4c6955efb3e3f58c8e8f0efa1027063b75e3b8e8044a818a5f5a952d984e3/merged",
"UpperDir": "/var/lib/docker/overlay2/96e4c6955efb3e3f58c8e8f0efa1027063b75e3b8e8044a818a5f5a952d984e3/diff",
"WorkDir": "/var/lib/docker/overlay2/96e4c6955efb3e3f58c8e8f0efa1027063b75e3b8e8044a818a5f5a952d984e3/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:411a86676185cb54d695a805b238194a64e9b77e0c723f3802fbb87d333ea0b3",
"sha256:fcc4b440e1cafe5d78e28f44663fdde0d92fcb82d9c9f23f65aa33f5f1107b21",
"sha256:c91629c78bb5e9beb605dc4d3f61742baed65f833a319ff588878f6b2162b2e1",
"sha256:a292382a37dc8abd3ecee03ac370cb3658eca6f8d8eeeef55fa84f8bd1bd2bf0",
"sha256:638d01f27f1a58ecda76f5dc750cf8fc69ac99e0d6715c76fb94f0669728c7bd",
"sha256:e1273358375c4364d78f144edaa54b1baf801a81defc4305901504a3255e80c6",
"sha256:6aa8b307d8fc293aab4a1934fd4bac0d292606418aa5c2ac3822e4bb5ba3e3d1",
"sha256:d9ee8498b98c384e40155b686de0b1754826c4aad7e6c6b0db0a3f492ecd202a",
"sha256:d07e208b672cea42d6b88e679e838d337a8875593ff77eb61581efa0cbb6a945",
"sha256:d04c8ad2bb5d94dde32b5743c3969528f60dce85038624e2ffcbe2df16e258a4",
"sha256:c9716cbc4c6a0ab23eda6bcd9d7647f7cdbe6a89c972e1b5641753816bec3765",
"sha256:6afebe86634a811cac7638163636f5feaf6979106509bfd55a389b612b72020f",
"sha256:5cba55f6bb3e738f2c5122446e526ecb3e78e52866a442f7c147fac6503bcda8",
"sha256:accc51308734eeab7f564cf1bb6736f5bc3598e4d7653b7fea77e3dc6363191e",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"
]
},
"Metadata": {
"LastTagTime": "2026-09-04T11:46:19.020113591+08:00"
}
}