Having trouble resolving an issue running Wine with box64 inside a docker container, nested within an Incus container, on an ARM64 system.
This started as an issue maybe six months ago. It only occurs on ARM64 systems - I can run Wine inside a docker container, nested within an Incus container, on an AMD64 system just fine (obviously no box64 involved there).
It seems potentially related to file system issues connected with how /tmp
is handled in the docker container. This is where the Wine socket is created by default.
Variously when trying to run an application in Wine in the docker container, I get:
wine: chdir to /tmp/.wine-1000/server-58-1367300000000 : No such file or directory
(the actual directory that exists is `/tmp/.wine-1000/server-58-13673`
- a truncated version of what Wine is trying to access)
OR
sock_init: ERROR in sock_check_pollhup()`
`wineserver: socket: Permission denied
Potentially the /tmp
directory and socket issues could be caused by AppArmor policies. I see a bunch of “denied” in dmesg like:
[9495658.487230] audit: type=1400 audit(1756715883.257:5062): apparmor="DENIED" operation="create" class="net" info="failed type and protocol match" error=-13 namespace="root//incus-amp2x64_<var-lib-incus>" profile="docker-default" pid=3408907 comm="wineserver" family="unix" sock_type="stream" protocol=0 requested="create" denied="create" addr=none
However, disabling AppArmor on the docker container (by using docker run --security-opt apparmor=unconfined
), and trying other ways to override the default AppArmor policies, don’t resolve the issue.
The Incus container has the normal settings to allow for nested containers:
security.nesting: "true"
security.syscalls.intercept.mknod: "true"
security.syscalls.intercept.setxattr: "true"
Would really appreciate any ideas. As mentioned, this only surfaced as an issue within the last six months or so. Previously this setup worked fine.
Currently running Incus 6.12.