镜像构建历史
# 2026-09-23 20:30:16 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["python3" "-m" "uvicorn" "backend.main:app" "--host" "0.0.0.0" "--port" "3900"]
# 2026-09-23 20:30:16 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/app/omnivoice_data]
# 2026-09-23 20:30:16 0.00B 指定检查容器健康状态的命令
HEALTHCHECK {Test:[CMD-SHELL curl -fsS http://127.0.0.1:3900/health || exit 1] Interval:30s Timeout:5s StartPeriod:2m0s StartInterval:0s Retries:5}
# 2026-09-23 20:30:16 0.00B 声明容器运行时监听的端口
EXPOSE [3900/tcp]
# 2026-09-23 20:30:16 11.24MB 复制新文件或目录到容器中
COPY /app/frontend/dist ./frontend/dist # buildkit
# 2026-09-23 20:30:15 1.76KB 复制新文件或目录到容器中
COPY alembic.ini ./ # buildkit
# 2026-09-23 20:30:15 516.99KB 复制新文件或目录到容器中
COPY omnivoice/ ./omnivoice/ # buildkit
# 2026-09-23 20:30:15 25.41MB 复制新文件或目录到容器中
COPY backend/ ./backend/ # buildkit
# 2026-09-23 15:43:24 1.12GB 执行命令并创建新的镜像层
RUN |1 GPU_FLAVOR=cuda /bin/sh -c if [ "$GPU_FLAVOR" = "cuda" ]; then target="$(python3 -c "import os, sys; print(os.path.join(sys.prefix, 'lib', 'python%d.%d' % sys.version_info[:2], 'site-packages', 'cudnn8_compat'))")" && uv pip install --python "$(command -v python3)" --no-cache --no-deps --target "$target" nvidia-cudnn-cu12==8.9.7.29 && python3 -c "import os, sys; d = os.path.join(sys.prefix, 'lib', 'python%d.%d' % sys.version_info[:2], 'site-packages', 'cudnn8_compat', 'nvidia', 'cudnn', 'lib'); libs = [f for f in os.listdir(d) if '.so.8' in f]; assert libs, 'cudnn8_compat installed but no .so.8 libraries in ' + d; print('cuDNN 8 compat libraries: %d' % len(libs))"; fi # buildkit
# 2026-09-23 15:43:19 0.00B 执行命令并创建新的镜像层
RUN |1 GPU_FLAVOR=cuda /bin/sh -c python3 -c "import os, torch, torchaudio, torchvision; flavor = os.environ['GPU_FLAVOR']; accel = torch.version.hip if flavor == 'rocm' else torch.version.cuda; print(f'torch={torch.__version__} torchaudio={torchaudio.__version__} torchvision={torchvision.__version__} {flavor}={accel}'); assert accel, f'base image {flavor} torch was clobbered (now {torch.__version__})'; import torchvision.ops; torchvision.ops.nms; print('torchvision C++ ops resolve against this torch')" # buildkit
# 2026-09-23 15:43:16 0.00B 定义构建参数
ARG GPU_FLAVOR=cuda
# 2026-09-23 15:43:16 1.51GB 执行命令并创建新的镜像层
RUN /bin/sh -c uv pip install --python "$(command -v python3)" --no-cache --constraint deploy/torch-constraints.txt . # buildkit
# 2026-09-23 15:43:07 1.88KB 复制新文件或目录到容器中
COPY deploy/torch-constraints.txt ./deploy/torch-constraints.txt # buildkit
# 2026-09-23 15:43:07 1.45MB 复制新文件或目录到容器中
COPY pyproject.toml uv.lock README.md ./ # buildkit
# 2026-09-19 13:59:13 51.30MB 执行命令并创建新的镜像层
RUN /bin/sh -c python3 -m pip install --no-cache-dir uv # buildkit
# 2026-09-19 13:59:11 0.00B 设置环境变量 UV_BREAK_SYSTEM_PACKAGES
ENV UV_BREAK_SYSTEM_PACKAGES=1
# 2026-09-19 13:59:11 0.00B 设置环境变量 PIP_BREAK_SYSTEM_PACKAGES
ENV PIP_BREAK_SYSTEM_PACKAGES=1
# 2026-09-19 13:59:11 638.22MB 执行命令并创建新的镜像层
RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends build-essential ffmpeg libsndfile1 curl && rm -rf /var/lib/apt/lists/* # buildkit
# 2026-09-19 13:59:11 0.00B 设置环境变量 OMNIVOICE_SERVER_MODE
ENV OMNIVOICE_SERVER_MODE=1
# 2026-09-19 13:59:11 0.00B 设置环境变量 PYTHONPATH
ENV PYTHONPATH=/app/backend
# 2026-09-19 13:59:11 0.00B 设置环境变量 HF_HOME
ENV HF_HOME=/app/omnivoice_data/huggingface
# 2026-09-19 13:59:11 0.00B 设置环境变量 PYTHONUNBUFFERED
ENV PYTHONUNBUFFERED=1
# 2026-09-19 13:59:11 0.00B 设置环境变量 PYTHONDONTWRITEBYTECODE
ENV PYTHONDONTWRITEBYTECODE=1
# 2026-09-19 13:58:46 0.00B 设置工作目录为/app
WORKDIR /app
# 2025-08-07 01:20:49 0.00B 设置工作目录为/workspace
WORKDIR /workspace
# 2025-08-07 01:20:49 0.00B 设置环境变量 PYTORCH_VERSION
ENV PYTORCH_VERSION=2.8.0
# 2025-08-07 01:20:49 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-08-07 01:20:49 0.00B 设置环境变量 LD_LIBRARY_PATH
ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64
# 2025-08-07 01:20:49 0.00B 设置环境变量 NVIDIA_DRIVER_CAPABILITIES
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility
# 2025-08-07 01:20:49 0.00B 设置环境变量 NVIDIA_VISIBLE_DEVICES
ENV NVIDIA_VISIBLE_DEVICES=all
# 2025-08-07 01:20:49 0.00B 设置环境变量 PATH
ENV PATH=/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-08-07 01:20:49 0.00B 执行命令并创建新的镜像层
RUN |4 PYTORCH_VERSION=2.8.0 TRITON_VERSION= TARGETPLATFORM=linux/amd64 CUDA_VERSION=12.8.1 /bin/sh -c if test -n "${TRITON_VERSION}" -a "${TARGETPLATFORM}" != "linux/arm64"; then DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends gcc; rm -rf /var/lib/apt/lists/*; fi # buildkit
# 2025-08-07 01:20:48 7.58GB 复制新文件或目录到容器中
COPY /opt/conda /opt/conda # buildkit
# 2025-08-07 01:16:04 25.99MB 执行命令并创建新的镜像层
RUN |4 PYTORCH_VERSION=2.8.0 TRITON_VERSION= TARGETPLATFORM=linux/amd64 CUDA_VERSION=12.8.1 /bin/sh -c apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates libjpeg-dev libpng-dev && rm -rf /var/lib/apt/lists/* # buildkit
# 2025-08-07 01:16:04 0.00B 添加元数据标签
LABEL com.nvidia.volumes.needed=nvidia_driver
# 2025-08-07 01:16:04 0.00B 定义构建参数
ARG CUDA_VERSION=12.8.1
# 2025-08-07 01:16:04 0.00B 定义构建参数
ARG TARGETPLATFORM=linux/amd64
# 2025-08-07 01:16:04 0.00B 定义构建参数
ARG TRITON_VERSION=
# 2025-08-07 01:16:04 0.00B 定义构建参数
ARG PYTORCH_VERSION=2.8.0
# 2025-07-15 00:33:32 0.00B
/bin/sh -c #(nop) CMD ["/bin/bash"]
# 2025-07-15 00:33:31 77.87MB
/bin/sh -c #(nop) ADD file:415bbc01dfb447d002e2d8173e113ef025d2bbfa20f1205823fa699dc87a2019 in /
# 2025-07-15 00:33:29 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.version=22.04
# 2025-07-15 00:33:29 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu
# 2025-07-15 00:33:29 0.00B
/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH
# 2025-07-15 00:33:29 0.00B
/bin/sh -c #(nop) ARG RELEASE
镜像信息
{
"Id": "sha256:39516cd4688a944100aa24e3f84bcf8c68f2ccd8ae427b3b51ff55b079c5f928",
"RepoTags": [
"ghcr.io/debpalash/omnivoice-studio:latest",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/debpalash/omnivoice-studio:latest"
],
"RepoDigests": [
"ghcr.io/debpalash/omnivoice-studio@sha256:72f944109540db3f3f573bd83c7bd13efb1eafb053ec33d06d9cad96f1934a5e",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/debpalash/omnivoice-studio@sha256:c037e25ab959ecc2ef6c064503dfd69c22741b987de28bcdae96dd53248e0344"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-09-23T12:30:16.455549781Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"3900/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NVIDIA_VISIBLE_DEVICES=all",
"NVIDIA_DRIVER_CAPABILITIES=compute,utility",
"LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64",
"PYTORCH_VERSION=2.8.0",
"PYTHONDONTWRITEBYTECODE=1",
"PYTHONUNBUFFERED=1",
"HF_HOME=/app/omnivoice_data/huggingface",
"PYTHONPATH=/app/backend",
"OMNIVOICE_SERVER_MODE=1",
"PIP_BREAK_SYSTEM_PACKAGES=1",
"UV_BREAK_SYSTEM_PACKAGES=1"
],
"Cmd": null,
"Healthcheck": {
"Test": [
"CMD-SHELL",
"curl -fsS http://127.0.0.1:3900/health || exit 1"
],
"Interval": 30000000000,
"Timeout": 5000000000,
"StartPeriod": 120000000000,
"Retries": 5
},
"Image": "",
"Volumes": {
"/app/omnivoice_data": {}
},
"WorkingDir": "/app",
"Entrypoint": [
"python3",
"-m",
"uvicorn",
"backend.main:app",
"--host",
"0.0.0.0",
"--port",
"3900"
],
"OnBuild": null,
"Labels": {
"com.nvidia.volumes.needed": "nvidia_driver",
"org.opencontainers.image.created": "2026-09-23T14:05:50.863Z",
"org.opencontainers.image.description": "VoiceStudio is the open-source, fully-local ElevenLabs alternative — voice cloning, voice design, video dubbing, dictation, transcription \u0026 audiobook creation in 646 languages.",
"org.opencontainers.image.licenses": "AGPL-3.0",
"org.opencontainers.image.ref.name": "ubuntu",
"org.opencontainers.image.revision": "453213882dd18c3e8fcca95d0912e7b58a4b4813",
"org.opencontainers.image.source": "https://github.com/debpalash/VoiceStudio",
"org.opencontainers.image.title": "VoiceStudio",
"org.opencontainers.image.url": "https://github.com/debpalash/VoiceStudio",
"org.opencontainers.image.version": "latest"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 11046959466,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/23c982678ba535105ad81560e2f8839275f97460782f7ae48ee5d34214c5ddc1/diff:/var/lib/docker/overlay2/0d146fab93e0829a3836b9a8800f0a4b273eabf5a72babf7ff6435190a77a465/diff:/var/lib/docker/overlay2/41133a2872b656977613c3ecc2c819db2e33ddd2970bb8fbc23f105a0b91634f/diff:/var/lib/docker/overlay2/3783d9e80f394bb3b887e13c93bb89f1e5ed652f41f006b43c615cc51b58289b/diff:/var/lib/docker/overlay2/7c1ad81a470963c9146c37b00ecee9670f3073fe67317707235fc7f278bfcf0b/diff:/var/lib/docker/overlay2/aba3293ca3ae7e4587f84086eaa2dab5643eab82303e052bf8d93f4ce029cece/diff:/var/lib/docker/overlay2/86490a325cc9ffec08996b6b5c9bdac418a6a90d000e65c49a320a5f9fc98491/diff:/var/lib/docker/overlay2/b51ea3f985a632e11528123d42acc99be86b87320a48bcd06b7d956ebf8f43cc/diff:/var/lib/docker/overlay2/d253670fcb98eca0f418d95e11190b844e9872fdd1242d46aa0441a1066844b1/diff:/var/lib/docker/overlay2/d65b7369042b8c22f9f3fdc0f3ee2575ac867162eb0bb005a4450cf0df0a59a8/diff:/var/lib/docker/overlay2/cad2464ea4fa45a62c6c9ad773a41172289017a99409b7c3d19a2b99a4699415/diff:/var/lib/docker/overlay2/b578ec3710ce206ea6ce9ec2aed223ea8bd6d1d608fc484bfed458ad5923339e/diff:/var/lib/docker/overlay2/391cd01dc8f9bbb1ae18aafd75bf2c365ad41f4c21ce1cd3693c2ad071583d94/diff:/var/lib/docker/overlay2/17aa18efdbc980538cef4c98194fb1c16e892db7db9e20161263181a2fb63e8c/diff:/var/lib/docker/overlay2/42a13b7872fc5043317a05f368d91632da3485af2b8cc368dcbc54ce2b6fc89c/diff:/var/lib/docker/overlay2/0870b64defdf9639d62bfb6166c6d4a3b8863bdfd611a5567c1d7c0af5334856/diff",
"MergedDir": "/var/lib/docker/overlay2/a7b2248dad1a3040900e67cbad6e14cd36445167debfa9366c21f2e009c04b9a/merged",
"UpperDir": "/var/lib/docker/overlay2/a7b2248dad1a3040900e67cbad6e14cd36445167debfa9366c21f2e009c04b9a/diff",
"WorkDir": "/var/lib/docker/overlay2/a7b2248dad1a3040900e67cbad6e14cd36445167debfa9366c21f2e009c04b9a/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:3cc982388b71ef357e0157e0b7d3059dcefa4dc9fd2e3815bde6c6ce040302f3",
"sha256:574501c8d7d0c0a3e4756cf91d6d517a50d69b3355f3eadd9a6cb7b8f88334e1",
"sha256:99a4f2df9c934e6a4efc4f61a96ebe8f44727f5213776355b1795290b197533c",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:026db027580493d2f7409238901521387c4961a6d0f99242e20394f994904412",
"sha256:74b1757403322938ec0476fd6248c9a14e3c849463d83cbf76e1bc325dae1e20",
"sha256:724c9f6e2956b4707264302a6a045741abacd43ef95e339e433146c1da423ffb",
"sha256:393b78fbd1850da3d06067e45dbb548e537ab3189990cb1778b058e1de80262f",
"sha256:6a2fd777d28ac2376bf272bd02d09a20bf7b77de72dca6d6e1394a82166f568c",
"sha256:d77ffeb04138f1ae7d07c0b56232b65af51515120bfa96e7f835b5ddc54513d0",
"sha256:f2ebf45156188f0ac9ac213e4806fd713e97b689bbf897cc886ff7c0cdc83644",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:b638a0bfc25a853827e79581b0c347834ae196e6dd3e3c74946921c14878eb17",
"sha256:7105ba2b77faae9b98af95a92e674f69d279870df2a4fb2117241bb9d1bc176b",
"sha256:3281621503502146c196af26b61445fb5cc5709d6baadf44f3c82121236da7b6",
"sha256:6fc510815d2f4ff5c5c59ca5ecc65e7266428585b43a2f8ea1be2d8909cc3bcc",
"sha256:e4cc5588906515713d9bad9667cfcbece6c91992452ab2ad5e33c15221d81683"
]
},
"Metadata": {
"LastTagTime": "2026-09-24T02:07:49.768495041+08:00"
}
}