Closed jfolz closed 10 months ago
enroot mounts a tmpfs on /var/run
by default, to be similar to a bare-metal system. Thus hiding what the container image stores in these folders. Container images writers should probably avoid creating files/directories in folders like /var/run
or /tmp
.
Note that if you don't want this behavior you can always edit the enroot mount configuration. Alternatively you can mount a tmpfs when you start the container, or create the directory in your entrypoint:
enroot start -m tmpfs:/run/supervisor:x-create=dir,mode=0600 selenium
@flx42 Interesting. I wasn't aware of this, but I understand the reasoning. I suppose bare metal these folders are created by tmpfiles.d
or some similar mechanism, which isn't effective in a container. In this case, mkdir /var/run/supervisor
fixes the issue, which is simple enough. TBH, this is the first time we've encountered such an issue in 3+ years, so I don't know whether it's even worth looking into it much. My only concern is confused users coming to me with this type of issue ;)
Happy new year! We decided to install Podman alongside Enroot on compute nodes. This not only allows users to build images on-site (and then enroot import
them), but we can also point people in that direction if something like this crops up. Given the rarity and existing workaround, I'm closing this issue.
While attempting to import & run a Selenium image from Docker, I was greeted with a message about a missing directory:
Verifying inside the container, the directory is indeed missing:
Using podman to start a container, the directory exists:
This is our
enroot.conf
: