Docker Compose构建报错‘no such process’问题排查求助
Docker构建报错排查:open requirements.txt: no such process
问题背景
我的服务目录结构如下:
docker-compose.yml service/ -Dockerfile -requirements.txt -api/
执行docker-compose build --no-cache构建镜像时,出现如下错误:
failed to build: failed to copy files: failed to copy directory: Error processing tar file(exit status 1): open requirements.txt: no such process
移除requirements.txt后,其他文件也会报相同错误,以下是我的配置文件:
Dockerfile
FROM python:3.7-buster ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 WORKDIR /api RUN pip install --upgrade pip COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . .
docker-compose.yml
version: "3.5" services: firebase: build: ./service command: sh -c "gunicorn -w 5 --bind 0.0.0.0:8000 app:app" restart: on-failure ports: - "8088:8000" networks: - static-network networks: static-network: driver: bridge
排查与解决
这个错误的核心是Docker在打包构建上下文时无法读取目标文件,按以下步骤逐一排查:
检查文件权限
确认当前执行构建的用户对service/目录下的所有文件有读取权限,执行以下命令修复权限:chmod -R 755 service/ # 给目录加读写执行权限 chmod -R 644 service/* # 给文件加读写权限确认构建上下文路径
必须在包含docker-compose.yml的根目录下执行docker-compose build,不要进入service/目录运行命令。同时检查项目根目录是否存在.dockerignore文件,若有,确保没有误排除requirements.txt或service/目录。释放文件占用
检查requirements.txt等文件是否被编辑器、杀毒软件或其他进程锁定,关闭相关程序后重新尝试构建。重置Docker服务
若以上方法无效,尝试重启Docker服务并清理缓存:# Linux系统 systemctl restart docker docker system prune -a # Windows/macOS # 在Docker桌面应用中点击重启按钮,然后执行清理命令 docker system prune -a
内容的提问来源于stack exchange,提问作者Ilya Berezenko
相关产品推荐
相关产品推荐

