That’s true but the permissions on the host folder will be set when you start the container. It doesn’t work with the usual bind mount, yes. But it works with the named bind mount when it is initialized. At least with Docker 20.10.10 which almost the latest version but I don’t think that matters. Maybe you misunderstand me so I give you an example to try:
Run on the host
mkdir $HOME/volumes/test
Dockerfile
FROM ubuntu:20.04
RUN mkdir /app && chown -R 33:33 /app
Note: I intentionally used 33 for UID and GID to make the change more noticable
docker-compose.yml
version: "3.7"
volumes:
test:
driver: local
driver_opts:
type: none
device: "$HOME/volumes/test"
o: bind
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- test:/app
Start the project:
docker-compose up -d --build
Check the permissions:
ls -la $HOME/volumes/test