Ошибка "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 docker

2. Файлы owned by root после git pull

Если делал git pull от root, файлы принадлежат root. Контейнер запускается от другого пользователя и не может их читать.

# Исправить владельца
sudo chown -R deploy:deploy /home/deploy/project/
# Проверить
ls -la

3. 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 фев

Связанный контент

$ написать ответ

markdown