Ошибка "Permission denied" при деплое Docker на VPS — как исправить?
задан 23 февизменён 26 февпросмотров: 1ответов: 1
При docker compose up на VPS получаю "Permission denied" на разные файлы. Локально всё работает. Что не так с правами?
> Пока нет комментариев
1 ответ
✓
Permission denied на VPS — топ-3 причин:
1. Docker не добавлен в группу пользователя
# Добавить пользователя deploy в группу docker
sudo usermod -aG docker deploy
# Перелогиниться или:
newgrp docker2. Файлы owned by root после git pull
Если делал git pull от root, файлы принадлежат root. Контейнер запускается от другого пользователя и не может их читать.
# Исправить владельца
sudo chown -R deploy:deploy /home/deploy/project/
# Проверить
ls -la3. Volume permissions в Docker
Docker volumes по умолчанию создаются от root. Если приложение внутри контейнера работает от непривилегированного пользователя (node, www-data), оно не может писать в volume.
# В Dockerfile:
RUN mkdir -p /app/data && chown -R node:node /app/data
USER node
# Или в docker-compose.yml:
volumes:
- ./data:/app/data:rwЧеклист безопасности VPS
- Создай пользователя
deploy— не работай от root - SSH только по ключу:
PasswordAuthentication no - UFW:
deny incoming,allow ssh/80/443 - Файлы проекта —
deploy:deploy, неroot:root
Stackovervibe·26 фев