ERROR: failed to solve: cannot copy to non-directory: /var/lib/[...]/usr/local
i'm trying to make a new image for myself, my current setup consists of 2 separate images:
- one simply does stuff such as compiling software or downloading other content to prevent filling the main image with build dependecies
- the other is the actual bluebuild image, where it copies the files of the first image into the image itself
for some reason, despite essentially just cloning the setup from another image, this is erroring out. bluebuild gives me
ERROR: cannot copy to non-directory: /var/lib/buildkit/runc-overlayfs/cachemounts/buildkit2036245495/usr/local
. it seems like it doesn't like doing anything with /usr/local
, but i think i've confirmed that the first image doesn't have that directory. so i'm completely lost here.
related files:
- scripts used in the first image (wayland.sh
might be most relevant here)
- recipe file for the image (related line)
- first image/helper Containerfile
4 Replies
ignore the messy repo structure i plan on nuking it and moving to a "normal" single user repo at some point
/var/
is a run-time directory, which cannot be written to in build-time, hence the errorsyeah the error sounds really confusing but it's probably just a script trying to copy something to /var/ or /usr/local/ which dont exist at build-time
interesting
bleh. tried just deleting the folders entirely in the helper image to see if it would change something and it didn't so i guess i'll just pause here because i'm not skilled enough to poke at this ðŸ«
realized its because all of the compiled software installs ito /usr/local
might have "fixed" this issue by just adding
mv /[...]/usr/local/* /[...]/usr
(since just doing mv [..]/usr/local [..]/usr
errors because it seems to try to copy itself into /usr/local again when i do that)
but i've yet to build the image so i cannot confirm
okay. the whole time i was just stupid. the edits i initially made pointed to the wrong directories so they didn't do anything
but its fine now i learned how to use prefixes to point to /usr instead of /usr/local