ome / devspace

Continuous integration tool for OME projects
18 stars 18 forks source link

Add .cache folder to .dockerignore for server, slave and web containers #181

Closed sbesson closed 3 years ago

sbesson commented 3 years ago

While working on latest-ci and recreating containers via docker-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.

sbesson commented 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.

joshmoore commented 3 years ago

"Use double quotes rather than single quotes for VOLUME" Wow! Was this a change in docker itself?

sbesson commented 3 years ago

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.

sbesson commented 3 years ago

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.