Задать вопрос
PankovAlxndr
@PankovAlxndr
Fullstack web developer

Как решить проблему с правами в docker?

Здравствуйте
Есть vps на ubuntu

там создал каталог
/var/www/static

внутри которого
-- docker-compose.yaml
--- src
---- index.html

на vps установлен докер и докер-компоуз
докер-компоуз понимает контейнеры без ошибок
вот сам компоуз
version: "3"

services:
    client:
        image: nginx:latest
        ports:
            - 8000:80
        volumes:
            - ./src:/usr/share/nginx/html


запускается на 8000
перехожу в браузер и вижу ошибку 403 Forbidden

смотрю логи docker-compose logs
и вижу такое

static-client-1  | 2021/12/01 19:03:14 [error] 31#31: *1 "/usr/share/nginx/html/index.html" is forbidden (13: Permission denied), client: 46.***.***.75, server: localhost, request: "GET / HTTP/1.1", host: "194.***.***.69:8000"

static-client-1  | 46.***.***.75 - - [01/Dec/2021:19:03:14 +0000] "GET / HTTP/1.1" 403 555 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36" "-"

static-client-1  | 2021/12/01 19:03:14 [error] 31#31: *1 open() "/usr/share/nginx/html/favicon.ico" failed (13: Permission denied), client: 46.***.***.75, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "194.***.***.69:8000", referrer: "http://194.***.***69:8000/"


ошибка 13: Permission denied
Не могу нагуглить как решить и в в чем проблема

какой-то другой пользователь внутри контейнера с nginx пытается прочитать файлы с хост машины (вольюм)
а в контейнер монтируются файлы с правами хост машины - имеем конфликт, я правильно мыслю?
а как победить если правильно

если зайти внутрь контейнера в /usr/share/nginx/html
та там лежит мой index.html
-rw------- 1 1000 1000 193 Dec 1 19:01 index.html

1000 - это мой пользователь (не рутовый)
с такими группами
groups=1000(pankov),27(sudo),33(www-data),998(docker)
  • Вопрос задан
  • 947 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
udjin123
@udjin123
PHP, Golang, React
Прописать сопоставление пользователя и группы

services:
    client:
        image: nginx:latest
        ports:
            - 8000:80
        user: "1000:1000"
        volumes:
            - ./src:/usr/share/nginx/html
Ответ написан
PankovAlxndr
@PankovAlxndr Автор вопроса
Fullstack web developer
пробрал вот это на хост машине

chmod -R 755 src/

было
drwx------ 2 pankov pankov 4096 Dec 1 20:00 src

стало
drwxr-xr-x 2 pankov pankov 4096 Dec 1 20:00 src

и ве заработало
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы