Concourse docker image is missing 'file' binary used by btrfs driver.
mplzik opened this issue · 1 comments
mplzik commented
The baggageclaim's btrfs driver is using 'file' to identify whether a volume.img is a btrfs image [1]. Since concourse docker image is missing this file, the check fails [2], invoking an attempt to create btrfs filesystem which then fails. In my case (running in kubernetes), this prevented the worker to start correctly, crashlooping in the process.
[1] https://github.com/concourse/baggageclaim/blob/master/fs/btrfs.go#L45
[2]
+ '[' '!' -e /concourse-work-dir/volumes.img ']'
++ stat --printf=%s /concourse-work-dir/volumes.img
+ '[' 199567056896 '!=' 199567056896 ']'
++ losetup -j /concourse-work-dir/volumes.img
++ cut -d: -f1
+ lo=/dev/loop0
+ '[' -z /dev/loop0 ']'
+ file /concourse-work-dir/volumes.img
bash: line 11: file: command not found
+ grep BTRFS
+ mkfs.btrfs --nodiscard /concourse-work-dir/volumes.img
/concourse-work-dir/volumes.img appears to contain an existing filesystem (btrfs).
ERROR: use the -f option to force overwrite of /concourse-work-dir/volumes.img
"
stdout: "btrfs-progs v4.15.1
See http://btrfs.wiki.kernel.org for more information.
"
vito commented
Opened a PR for this here: concourse/concourse#3601 - I'll close before I forget this since the PR can't auto-close it. Thanks for the report!