构建 docket uable to prepar context: path “.“ not found

复制代码
docker build -t modelscope-video .
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
            Install the buildx component to build images with BuildKit:
            https://docs.docker.com/go/buildx/

unable to prepare context: path "." not found

解决方法

1. 确认当前目录和 Dockerfile
  • 检查当前目录

    bash

    CollapseWrapRun
    Copy

    pwd ls -la
    确认是否在 ~/work/miniconda(或你保存 Dockerfile 的目录),并检查是否包含 Dockerfile 和 text-to-video.py

  • 如果缺少 Dockerfile : 创建 Dockerfile:

    bash

    CollapseWrapRun
    Copy

    cd ~/work/miniconda nano Dockerfile
    复制以下内容(优化后的 Dockerfile,基于 ubuntu:22.04 解决 GLIBCXX_3.4.29):

    dockerfile

    CollapseWrap
    Copy

    # 使用 Ubuntu 22.04(包含 GLIBCXX_3.4.29) FROM ubuntu:22.04 # 设置非交互式安装 ENV DEBIAN_FRONTEND=noninteractive # 安装基本工具和依赖 RUN apt-get update && apt-get install -y \ python3.8 \ python3-pip \ git \ ffmpeg \ libsm6 \ libxext6 \ libxrender-dev \ libgl1-mesa-glx \ && rm -rf /var/lib/apt/lists/* # 设置 Python 3.8 为默认 RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1 RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 RUN pip install --no-cache-dir --upgrade pip # 安装 PyTorch(CPU 版本) RUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu # 安装 ModelScope 和文生视频依赖 RUN pip install modelscope diffusers transformers opencv-python pillow sentence-transformers -i https://pypi.tuna.tsinghua.edu.cn/simple # 设置工作目录 WORKDIR /app # 复制文生视频脚本 COPY text-to-video.py . # 默认命令 CMD ["python", "text-to-video.py"]
    保存并退出。

  • 如果缺少 text-to-video.py : 创建脚本:

    bash

    CollapseWrapRun
    Copy

    nano text-to-video.py
    复制以下内容(生成多个短视频,适配 >30 秒需求):

    python

    CollapseWrapRun
    Copy

    import os from modelscope.pipelines import pipeline from modelscope.outputs import OutputKeys pipeline = pipeline("text-to-video-synthesis", "damo/text-to-video-synthesis", device="cpu") prompts = [ "A cat walking in a garden under sunlight, 0-6 seconds", "A cat walking in a garden under sunlight, 6-12 seconds", "A cat walking in a garden under sunlight, 12-18 seconds", "A cat walking in a garden under sunlight, 18-24 seconds", "A cat walking in a garden under sunlight, 24-30 seconds" ] for i, prompt in enumerate(prompts): output = pipeline(prompt, num_frames=48, fps=8) video_path = output[OutputKeys.OUTPUT_VIDEO_PATH] os.rename(video_path, f"/app/output/video_{i}.mp4") print(f"Video saved to /app/output/video_{i}.mp4")
    保存并退出。

2. 确认 Docker 存储路径

你提到 ~/work/ 空间较大,之前建议迁移 Docker 存储到 ~/work/docker。验证是否配置成功:

bash

CollapseWrapRun

Copy

docker info --format '{``{.DockerRootDir}}'

  • 如果输出 /home/powersys/work/docker,说明迁移成功。

  • 如果仍为 /var/lib/docker,按以下步骤配置: bash

    CollapseWrapRun
    Copy

    sudo systemctl stop docker mkdir -p ~/work/docker sudo rsync -av /var/lib/docker/ ~/work/docker/ sudo nano /etc/docker/daemon.json
    添加:

    json

    CollapseWrap
    Copy

    { "data-root": "/home/powersys/work/docker" }
    重启 Docker:

    bash

    CollapseWrapRun
    Copy

    sudo systemctl start docker

  • 检查磁盘空间

    bash

    CollapseWrapRun
    Copy

    df -h ~/work
    确保 ~/work/ 有 20-30 GB 空闲。如果不足,清理:

    bash

    CollapseWrapRun
    Copy

    docker system prune -a --volumes conda clean --all

3. 构建 Docker 镜像

在正确目录(包含 Dockerfile 和 text-to-video.py)运行:

bash

CollapseWrapRun

Copy

cd ~/work/miniconda docker build -t modelscope-video .

  • 解决 Buildx 警告 (可选): 安装 Buildx:

    bash

    CollapseWrapRun
    Copy

    sudo apt install docker-buildx docker buildx create --use docker buildx build -t modelscope-video .

4. 运行 Docker 容器

创建输出目录:

bash

CollapseWrapRun

Copy

mkdir -p ~/work/miniconda/output

运行容器:

bash

CollapseWrapRun

Copy

docker run --rm -v $(pwd)/output:/app/output modelscope-video

  • 脚本将生成 5 个 6 秒视频(video_0.mp4 到 video_4.mp4),保存到 ~/work/miniconda/output。
5. 拼接 >30 秒视频

安装 FFmpeg(如果未安装):

bash

CollapseWrapRun

Copy

sudo apt install ffmpeg

拼接视频:

bash

CollapseWrapRun

Copy

cd ~/work/miniconda/output echo -e "file 'video_0.mp4'\nfile 'video_1.mp4'\nfile 'video_2.mp4'\nfile 'video_3.mp4'\nfile 'video_4.mp4'" > file_list.txt ffmpeg -f concat -i file_list.txt -c copy output.mp4 xdg-open output.mp4

相关推荐
多米Domi0112 小时前
0x3f 第49天 面向实习的八股背诵第六天 过了一遍JVM的知识点,看了相关视频讲解JVM内存,垃圾清理,买了plus,稍微看了点确定一下方向
jvm·数据结构·python·算法·leetcode
人工智能训练7 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
yaoming1688 小时前
python性能优化方案研究
python·性能优化
码云数智-大飞9 小时前
使用 Python 高效提取 PDF 中的表格数据并导出为 TXT 或 Excel
python
biuyyyxxx10 小时前
Python自动化办公学习笔记(一) 工具安装&教程
笔记·python·学习·自动化
极客数模10 小时前
【2026美赛赛题初步翻译F题】2026_ICM_Problem_F
大数据·c语言·python·数学建模·matlab
小鸡吃米…11 小时前
机器学习中的代价函数
人工智能·python·机器学习
Li emily12 小时前
如何通过外汇API平台快速实现实时数据接入?
开发语言·python·api·fastapi·美股
m0_5613596713 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
Ulyanov13 小时前
顶层设计——单脉冲雷达仿真器的灵魂蓝图
python·算法·pyside·仿真系统·单脉冲