Я пытаюсь использовать docker -compose для создания тома на моем MA C, и я столкнулся со странным поведением, которое я не совсем понимаю, где docker-compose
не удается запустить из-за владения томом Пользователь, независимо от разрешений, установленных для папки.
Во-первых, вот мой docker файл и docker -компонентный файл:
Dockerfile
:
FROM debian
RUN groupadd -r test && useradd -r -g test test
VOLUME /var/test
# RUN mkdir -p /var/test && chown -R test:test /var/test
RUN mkdir -p /var/test
COPY test.sh /var/test/test.sh
CMD ["sh", "/var/test/test.sh"]
docker-compose.yml
:
version: '3.0'
services:
test:
build: .
volumes:
- test:/var/test
volumes:
test:
driver_opts:
o: bind
type: none
device: "/tmp/vols"
Структура:
|____tmp
| |____Dockerfile
| |____vols
| |____docker-compose.yml
Бег docker Состав:
➜ /tmp docker-compose up
Creating tmp_test_1 ... error
ERROR: for tmp_test_1 Cannot create container for service test: failed to chmod on /var/lib/docker/volumes/tmp_test/_data: chmod /var/lib/docker/volumes/tmp_test/_data: operation not permitted
ERROR: for test Cannot create container for service test: failed to chmod on /var/lib/docker/volumes/tmp_test/_data: chmod /var/lib/docker/volumes/tmp_test/_data: operation not permitted
ERROR: Encountered errors while bringing up the project.
Разрешения:
drwxrwxrwx 2 root wheel 64 May 3 12:20 vols
Решения, которые у меня сработали:
- Смена владельца
/tmp/vols
с root
, но мне было интересно, есть ли что-нибудь лучше - Создание какого-либо файла в
/tmp/vols
кажется, это решает, почему ????
В основном мой вопрос: почему это происходит, и как мне это исправить?
Я не могу найти объяснение в документах для этого, и я хочу убедиться, что я не пропустил ничего важного.
Спасибо!