Задать вопрос
@Sukesada

Права на volume между хостом и Docker-контейнером: разные UID (www-data / deploy). Как лучше организовать?

Есть сервер Ubuntu 24.04, PHP на хосте нет — PHP-FMP работает только в Контейнере (Alpine). Это pet проект жены.
В репозитории Git:
.
├── dump
├── logs
│   ├── backup
│   └── make
├── prod
│   ├── duogu            # код приложения
│   ├── duogu.yml        # docker-compose для PHP/MySQL
│   ├── Dockerfile
│   ├── duogu.conf
│   ├── entrypoint.sh
│   ├── mysqld.cnf
│   └── php.ini
├── proxy
│   ├── nginx.yml        # docker-compose для nginx
│   ├── certbot.yml      # docker-compose для certbot
│   ├── certbot
│   │   ├── conf
│   │   └── www
│   ├── conf.d
│   └── nginx.conf
├── scripts
├── env.examle
└── README.md


Схема такая:
На хосте:
пользователь deploy — uid 1000 (деплоит проект, обновляет код)
www-data — uid 33
В контейнере:
www-data — uid 82 (alpine)
Весь код проекта лежит в Docker volume, примонтированном с хоста
Разделять код и storage (uploads/cache/logs) не хочется — всё лежит в одном volume
Нужно корректно организовать права, чтобы:
– deploy мог без проблем обновлять код из Git на хосте
– контейнерный www-data мог читать и писать файлы
– не использовать 777
решение должно быть адекватным.
Вопрос:
Что считается наиболее правильным и практичным для production?
На что стоит ориентироваться: безопасность, поддерживаемость, best practices Docker/Linux?
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Linux для робототехников
    3 месяца
    Далее
  • Stepik
    Основы Linux
    2 недели
    Далее
  • Учебный центр IBS
    AL-1801 ОС Astra Linux Special Edition 1.8 для пользователей
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 2
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
Собирать образ с нужными правами, не запускать код напрямую с диска.
Ответ написан
@say_TT_plz
-v /etc/passwd:/etc/passwd:ro -v /etc/shadow:/etc/shadow:ro -v /etc/group:/etc/group:ro
да и все
Ответ написан
Ваш ответ на вопрос

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

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