Closed sbesson closed 3 years ago
The GH actions failed with
ERROR: for web Cannot start service web: OCI runtime create failed: invalid mount {Destination:[/home/omero, Type:bind Source:/var/lib/docker/volumes/ed233318d79d1fec50d559f3ee5d0fa9ab3114281cc43963ffa42539c04e8c22/_data Options:[rbind]}: mount destination [/home/omero, not absolute: unknown
Trying to identify the issue brought me to https://github.com/opencontainers/runc/issues/2928. It looks like some changes have been made to relax the absolute path requirement (https://github.com/opencontainers/runc/pull/3004) but absolute paths will be enforced at some point (https://github.com/opencontainers/runc/issues/3020).
For this PR, an immediate workaround would be to downgrade to an earlier version of Ubuntu and/or docker
. In the mid-term, we might need to review all our usages of docker-compose
making use of relative paths. Using ${pwd}
instead of .
might work but this does not necessarily have the same meaning.
"Use double quotes rather than single quotes for VOLUME" Wow! Was this a change in docker itself?
Now green...
For completeness, 6b10811 was motivated by my reading of https://github.com/containerd/containerd/issues/5547#issuecomment-856083714. It looks like a JSON with single quotes is treated as a string by the latest release of containerd.io
.
Merging and tagging as it is validated. https://github.com/search?l=Dockerfile&p=3&q=org%3Aome+%22VOLUME+%5B%22&type=Code seems to indicate this repository was the only place where we used VOLUME
with an array of single-quoted values.
While working on
latest-ci
and recreating containers viadocker-compose up -d
, the process creates a temporary copy of the context for each container which filled/tmp
.After investigating it turns out the issue comes from the
.cache
directories which contain ~10G of data. Adding these folders to.dockerignore
was sufficient to prevent the creation of unncessary large temporary archives.