镜像构建历史
# 2025-09-30 18:07:03 298.00B 复制新文件或目录到容器中
COPY --chown=54546:0 version_.py /label-studio/label_studio/core/version_.py # buildkit
# 2025-09-26 22:41:44 0.00B 设置默认要执行的命令
CMD ["label-studio"]
# 2025-09-26 22:41:44 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["./deploy/docker-entrypoint.sh"]
# 2025-09-26 22:41:44 0.00B 声明容器运行时监听的端口
EXPOSE &{[{{167 0} {167 0}}] 0xc0000a0440}
# 2025-09-26 22:41:44 0.00B 指定运行容器时使用的用户
USER 1001
# 2025-09-26 22:41:44 234.00B 复制新文件或目录到容器中
COPY --chown=1001:0 /label-studio/web/dist/libs/datamanager/version.json /label-studio/web/dist/libs/datamanager/version.json # buildkit
# 2025-09-26 22:41:44 206.00B 复制新文件或目录到容器中
COPY --chown=1001:0 /label-studio/web/dist/libs/editor/version.json /label-studio/web/dist/libs/editor/version.json # buildkit
# 2025-09-26 22:41:44 226.00B 复制新文件或目录到容器中
COPY --chown=1001:0 /label-studio/web/dist/apps/labelstudio/version.json /label-studio/web/dist/apps/labelstudio/version.json # buildkit
# 2025-09-26 22:41:44 36.72MB 复制新文件或目录到容器中
COPY --chown=1001:0 /label-studio/web/dist /label-studio/web/dist # buildkit
# 2025-09-26 22:41:44 339.00B 复制新文件或目录到容器中
COPY --chown=1001:0 /label-studio/label_studio/core/version_.py /label-studio/label_studio/core/version_.py # buildkit
# 2025-09-26 22:41:44 652.24MB 复制新文件或目录到容器中
COPY --chown=1001:0 /label-studio /label-studio # buildkit
# 2025-09-26 22:41:39 17.91KB 复制新文件或目录到容器中
COPY --chown=1001:0 deploy deploy # buildkit
# 2025-09-26 22:41:39 15.56KB 复制新文件或目录到容器中
COPY --chown=1001:0 licenses licenses # buildkit
# 2025-09-26 22:41:39 11.34KB 复制新文件或目录到容器中
COPY --chown=1001:0 LICENSE LICENSE # buildkit
# 2025-09-26 22:41:39 11.49KB 复制新文件或目录到容器中
COPY --chown=1001:0 README.md . # buildkit
# 2025-09-26 22:41:39 376.86KB 复制新文件或目录到容器中
COPY --chown=1001:0 poetry.lock . # buildkit
# 2025-09-26 22:41:39 6.21KB 复制新文件或目录到容器中
COPY --chown=1001:0 pyproject.toml . # buildkit
# 2025-09-26 22:41:39 6.27KB 复制新文件或目录到容器中
COPY --chown=1001:0 deploy/default.conf /etc/nginx/nginx.conf # buildkit
# 2025-09-26 22:41:39 21.95KB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; mkdir -p $LS_DIR $LABEL_STUDIO_BASE_DATA_DIR $OPT_DIR && chown -R 1001:0 $LS_DIR $LABEL_STUDIO_BASE_DATA_DIR $OPT_DIR /var/log/nginx /etc/nginx # buildkit
# 2025-09-26 22:41:39 243.01MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; apt-get update; apt-get upgrade -y; apt-get install --no-install-recommends -y libexpat1 libgl1 libglx-mesa0 libglib2.0-0t64 gnupg2 curl nginx; apt-get autoremove -y # buildkit
# 2025-09-26 22:41:28 0.00B 设置工作目录为/label-studio
WORKDIR /label-studio
# 2025-09-26 22:41:28 0.00B 设置环境变量 LS_DIR HOME LABEL_STUDIO_BASE_DATA_DIR OPT_DIR PATH DJANGO_SETTINGS_MODULE PYTHONUNBUFFERED PYTHONDONTWRITEBYTECODE
ENV LS_DIR=/label-studio HOME=/label-studio LABEL_STUDIO_BASE_DATA_DIR=/label-studio/data OPT_DIR=/opt/heartex/instance-data/etc PATH=/label-studio/.venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DJANGO_SETTINGS_MODULE=core.settings.label_studio PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1
# 2025-08-15 05:49:23 0.00B 设置默认要执行的命令
CMD ["python3"]
# 2025-08-15 05:49:23 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-08-15 05:49:23 35.04MB 执行命令并创建新的镜像层
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' && 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
# 2025-08-15 05:49:23 0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=5462f9099dfd30e238def83c71d91897d8caa5ff6ebc7a50f14d4802cdaaa79a
# 2025-08-15 05:49:23 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.13.7
# 2025-08-15 05:49:23 0.00B 设置环境变量 GPG_KEY
ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
# 2025-08-15 05:49:23 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
# 2025-08-15 05:49:23 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-08-15 05:49:23 78.61MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1757289600'
镜像信息
{
"Id": "sha256:0b13bfd77e3b2ec7b73fbab4485f161e2d2075490927dca3f41e6cfe474806b5",
"RepoTags": [
"heartexlabs/label-studio:1.21.0",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/heartexlabs/label-studio:1.21.0"
],
"RepoDigests": [
"heartexlabs/label-studio@sha256:046db042674bca7e9535b7c3a9688683405d4cbf37114cc0e3a0d5dd85de0e7a",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/heartexlabs/label-studio@sha256:b1fadaecd4dbd9d79333adcacbf075140135b8872385d8449c427ad90b3beca8"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-09-30T10:07:03.886018536Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "1001",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8080/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/label-studio/.venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305",
"PYTHON_VERSION=3.13.7",
"PYTHON_SHA256=5462f9099dfd30e238def83c71d91897d8caa5ff6ebc7a50f14d4802cdaaa79a",
"LS_DIR=/label-studio",
"HOME=/label-studio",
"LABEL_STUDIO_BASE_DATA_DIR=/label-studio/data",
"OPT_DIR=/opt/heartex/instance-data/etc",
"DJANGO_SETTINGS_MODULE=core.settings.label_studio",
"PYTHONUNBUFFERED=1",
"PYTHONDONTWRITEBYTECODE=1"
],
"Cmd": [
"label-studio"
],
"ArgsEscaped": true,
"Image": "",
"Volumes": null,
"WorkingDir": "/label-studio",
"Entrypoint": [
"./deploy/docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.created": "2025-09-30T10:06:47.218Z",
"org.opencontainers.image.description": "Label Studio is a multi-type data labeling and annotation tool with standardized output format",
"org.opencontainers.image.licenses": "Apache-2.0",
"org.opencontainers.image.revision": "8a3f718f2ad61812400e44b9f1b323e0029855c0",
"org.opencontainers.image.source": "https://github.com/HumanSignal/label-studio",
"org.opencontainers.image.title": "label-studio",
"org.opencontainers.image.url": "https://github.com/HumanSignal/label-studio",
"org.opencontainers.image.version": "fix-promote"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 1049904414,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/e3ecb096e72f4254351224062853549d0188b1bae3f8e3fd4736ec22f1fde519/diff:/var/lib/docker/overlay2/9d76d19bb5b353c3388bea3387a365ba7fef67c64a27bc1eae5ebaa5a1dce3a6/diff:/var/lib/docker/overlay2/9933cdf3a921607abc7075beb7b790bdca0d7d9a746e3d7c3e8d69c105babaae/diff:/var/lib/docker/overlay2/c7727da19f8aa10a5e256d4bcd033a286f4068f13601f6bb83354ea6f10fcc57/diff:/var/lib/docker/overlay2/afe6614098717f8a6fd91b514f17edba98c53ff7382d166020d0c9bd71db5820/diff:/var/lib/docker/overlay2/d8881609bb393be8edb1ceb9c0c4f798538137a62057022686fa3ba5e6a60fd5/diff:/var/lib/docker/overlay2/fa4374ad003c1af31306d93333aee49984429b3020ba4b8763ed945d72e4c2b7/diff:/var/lib/docker/overlay2/1ddbc3ecef1020ddfeb8a5cb6ede17fdb0dd9e66c98364d3414a021143531d32/diff:/var/lib/docker/overlay2/0fc80c7fcfd94518aa2b82a9d2d89edb347c75602c4cfaa7b25f15082876cf40/diff:/var/lib/docker/overlay2/62067717f2c7b18ff468901a3f9eb3f07716180b97c45261dcdb1127efa3e9b0/diff:/var/lib/docker/overlay2/a30753e2c567e69532163b3cae31fc8cf5abc6b47f445417ce40a6db3b15dac8/diff:/var/lib/docker/overlay2/fd075c549877ad686cf8176c6cf288a3050cd5bd44a4c2c2c3d461dead7e3bf9/diff:/var/lib/docker/overlay2/3a73347c4e949a64dd80d0bc9f39ef49a6fb4ed0e7c62fae488b5e95f411ec3c/diff:/var/lib/docker/overlay2/e430ac933fa657adda7e6208c664b6a91c831fb074ffbfb26b8a44682c148303/diff:/var/lib/docker/overlay2/f652de3345362991a338adccf8b76eeb7911f2eea4067a9485cbca186d5789d7/diff:/var/lib/docker/overlay2/5a8c556650df8a1b9f055d9006516772ec8689bb41c50be7caea94643745c7e9/diff:/var/lib/docker/overlay2/4242397ffcb20e546aec49695a2d2333b0bf58d779bc9239758fdb68d982c4ff/diff:/var/lib/docker/overlay2/c0a11cd1f6254035986ade5b914d5c4e101b99f317b381cbc1f29ba658aace37/diff:/var/lib/docker/overlay2/4fccefdb5084b20f391bda41bbe250eddfa4f0ca6804173a562ed3a2c2783c4f/diff:/var/lib/docker/overlay2/f25176bf4a5ea10a37ed8c731717c568e66961941643a3eb4e4d33ddd6689ed5/diff",
"MergedDir": "/var/lib/docker/overlay2/fe779807c03a856c3d1a39ec98e3a6dc982fb355c6d3f5feeb3d4547a16fed99/merged",
"UpperDir": "/var/lib/docker/overlay2/fe779807c03a856c3d1a39ec98e3a6dc982fb355c6d3f5feeb3d4547a16fed99/diff",
"WorkDir": "/var/lib/docker/overlay2/fe779807c03a856c3d1a39ec98e3a6dc982fb355c6d3f5feeb3d4547a16fed99/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:daf557c4f08e0cb77b2af2a08d8bca4f333cf408d88191911715e6f393eca215",
"sha256:6b34abe788a4e65229d00bb5f00c8e44f0f804a51aaabe9adc446426791306e2",
"sha256:127752c2ee4f7b334d907d8c7190b4dca278cf0f738186e49b1bc607ad40d725",
"sha256:1bab0b6d76a52e77d49c6ad0168502426bc2017c0e4e2677e474db8d9daa9c14",
"sha256:326a3bbd38a866c9276c996ad5da90b0e33860d8565a329f293ea78720859fc1",
"sha256:a7920d0aee064958dea4e0fdbf3da18b2f3b19b408a94f82e85a0e9d84f90a7e",
"sha256:bb59613794cde1755f22b30e98b363baa23bff784dbe23b7e57e498393cd6f04",
"sha256:4077e81a3365ceabf4871b486553564578380f6c3b3a2ae0cea95a3495fd15e2",
"sha256:add04375ea0f7d8e0ac621a73911469fc6357bc53d08af8c451025faecb99921",
"sha256:e953382edb3871e6456aa1b4f5d9869f4eb1a98123c971ba184665b69e09d368",
"sha256:cb1c9e2db76c275a47716f39d20f3412613ccbe87fae6e317942ffe6ebbc1afd",
"sha256:7c5c8aff792ff42cb52f9a08b882fff8d26e0952e785263c204ef28530c1a57d",
"sha256:149baba0716b3704c1f6a7a558ff0e0e5392f6aafc841a7fb8eba7baff02db05",
"sha256:73cb361e403f81435406e7d488eb35f62ed4ec0e27872f58b625ce0bdd1b6d04",
"sha256:4d9e1b3e53ba454a4adf69e52596ae29fd9d7444991383e95fd46b11ee142cba",
"sha256:92fbcfe36f3f5c393bb75efc09754172d9202d12bb980473d1f3ba4587e8b8b9",
"sha256:5d8471ac3a324ab42ac98ee3aabb70f110392b030ccdecb1909a0f2d0c0afdb0",
"sha256:1f72fc41884f297756c5f54a45ad484735449ed7a61bcb15346804e9db1f5586",
"sha256:fd8601f6f711f332099299bc197fe38f26b4fb2324a931de55ce2bb0a1246023",
"sha256:970b1ecc8a786034e6e14516fc46129dea80810abd370a03cd8f5234157782ca",
"sha256:712acd4bdf24079c14a7acea509c74434eacf1d39d9ab0c915e9538d8c92fe89"
]
},
"Metadata": {
"LastTagTime": "2025-12-03T16:49:11.105106317+08:00"
}
}