I started use Rancher Desktop instead of Docker Desktop and faced the problem with permissions. I have a docker-compose file with the next content:
version: "3.2"
services:
rabbitmq:
image: rabbitmq:3.8-management-alpine
container_name: 'rabbitmq'
ports:
- 5672:5672
- 15672:15672
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
volumes:
- ~/.docker-conf/rabbitmq/data/:/var/lib/rabbitmq/
- ~/.docker-conf/rabbitmq/log/:/var/log/rabbitmq
But when I try to run rabbitmq container by execute docker-compose up rabbitmq
the following error throws:
% docker-compose up rabbitmq
[+] Running 1/0
✔ Container rabbitmq Created 0.0s
Attaching to rabbitmq
rabbitmq | chown: /var/lib/rabbitmq: Permission denied
rabbitmq exited with code 1
%
My computer is Mac OS Monterey (M1).
It worked correctly when I used Docker Desktop. Do you have any ideas why Rancher Desktob has problems with permissions and how to fix it? Any help will be appreciated!
I tried to remove volumes section at all and set user: 'root'
and this resolved this problem, but it's not good solution for me.
version: "3.2"
services:
rabbitmq:
image: rabbitmq:3.8-management-alpine
container_name: 'rabbitmq'
user: "root"
ports:
- 5672:5672
- 15672:15672
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
I expect that my rabbitmq container will start properly without permissions error.
This all works just fine if you use Docker volumes rather than trying to bind-mount existing filesystem directories:
services:
rabbitmq:
image: rabbitmq:3.8-management-alpine
container_name: 'rabbitmq'
ports:
- 5672:5672
- 15672:15672
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
volumes:
- rabbitmq-data:/var/lib/rabbitmq/
- rabbitmq-log:/var/log/rabbitmq
volumes:
rabbitmq-data:
rabbitmq-log:
This works because when mounting a volume it takes on the ownership and permissions of the mountpoint.
Using volumes is generally a more effective way to manage container storage (unless you explicitly need access to the underlying files).