问题描述
服务“db”构建失败:复制文件失败:复制文件范围失败:参数无效 发生在任何新项目之后
启动我的任何 ddev 项目或使用 ddev config
创建新项目时会发生此错误。
更新:仅当 docker 数据(默认为 /var/lib/docker)位于 ZFS 卷上时才会发生这种情况。 我将其移至 EXT4 后问题就消失了。
docker 或 docker compose 似乎没有问题,因为我已经成功启动了两个项目的 example/hello-world 容器。
我尝试删除 ~/.ddev、降级 ddev 和降级 docker。我无法降级 docker-compose。
日志:
$ ddev start
Starting test...
mkcert may not be properly installed,we suggest installing it for trusted https support,`brew install mkcert nss`,`choco install -y mkcert`,etc. and then `mkcert -install`
Running Command=ip address show dev docker0
Building db
Service 'db' failed to build : failed to copy files: copy file range failed: invalid argument
Failed to start test: Failed to run docker-compose [-f /home/tester/htdocs/test/.ddev/.ddev-docker-compose-full.yaml up --build -d],err='exit status 1',stdout='Step 1/6 : ARG BASE_IMAGE
Step 2/6 : FROM $BASE_IMAGE
---> 33f3288968e4
Step 3/6 : ARG username
',stderr='Building db
Service 'db' failed to build : failed to copy files: copy file range failed: invalid argument'
config.yml
name: test
type: php
docroot: ""
php_version: "7.3"
webserver_type: nginx-fpm
router_http_port: "80"
router_https_port: "443"
xdebug_enabled: false
additional_hostnames: []
additional_fqdns: []
mariadb_version: "10.2"
mysql_version: ""
provider: default
use_dns_when_possible: true
composer_version: ""
系统:
- Docker 20.10.1
- docker-compose 1.27.4
- Manjaro Linux(Arch 衍生版)
- ZFS 2.0.0-1(在根目录上)
码头信息
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc.,v0.9.1-beta3)
buildx: Build with BuildKit (Docker Inc.,v0.5.1-tp-docker)
Server:
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 27
Server Version: 20.10.1
Storage Driver: zfs
Zpool: rpool
Zpool Health: ONLINE
Parent Dataset: rpool/root
Space Used By Parent: 20958640128
Space Available: 282678809088
Parent Quota: no
Compression: off
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 269548fa27e0089a8b8278fc4fc781d7f65a939b.m
runc version: ff819c7e9184c13b7c2607fe6c30ae19403a7aff
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 5.10.2-2-MANJARO
Operating System: Manjaro Linux
OSType: linux
Architecture: x86_64
CPUs: 12
Total Memory: 30.9GiB
Name: testpc
ID: BKDP:GAWJ:BUCV:OVP6:QUKY:UQCZ:AESP:V3AN:EXHE:BWJU:4TT7:YPEO
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
解决方法
(没有足够的声誉来发表评论,但这不是一个完整的答案。)
我遇到了同样的问题,在 Arch w/ZFS 上的 Docker 也是如此。我能够通过传递 DOCKER_BUILDKIT=0 docker build ...
来“修复”它。这似乎是 buildkit 中某处的问题。
我没有进一步深入了解导致问题的具体原因。