У меня есть сервер с установленными Debian 10.11 (buster) и lxc (из репозиториев Debian, 1:3.1.0+really3.0.3-8).
Когда я создаю новый контейнер lxc (яблочко) (используя lxc-create -t загрузить -n redis-контейнер -- -d debian -r яблочко -a amd64
) Я получаю новый, отлично работающий контейнер с включенным apparmor (profile=generated, allow_nesting=1). Затем я устанавливаю Redis в контейнер lxc, используя apt установить redis-сервер
и устанавливается как надо (версия 5:6.0.16-1+deb11u1), но не запускается, выдает ошибку:
16 декабря 00:18:28 redis-container redis-server[2391]: *** FATAL CONFIG FILE ERROR (Redis 6.0.16) ***
16 декабря 00:18:28 redis-container redis-server[2391]: Чтение файла конфигурации, строка 260
16 декабря 00:18:28 redis-container redis-server[2391]: >>> 'logfile /var/log/redis/redis-server.log'
16 декабря 00:18:28 redis-container redis-server[2391]: не удается открыть файл журнала: файловая система только для чтения
После расследования я смог немного сузить проблему. Модуль systemd по умолчанию имеет следующие строки:
Только для чтения каталогов =/
ReadWritePaths=-/var/lib/redis
ReadWritePaths=-/var/log/redis
ReadWritePaths=-/var/run/redis
Я отключил apparmor, чтобы убедиться, что это не проблема, но ошибка продолжала возвращаться. В какой-то момент я начал работу службы, изменив пути чтения
к ReadWriteDirectories
, но остановка службы приведет к аналогичной ошибке, но о записи файла сохранения в /var/библиотека/редис
. На момент написания этого я не могу воспроизвести это, это не так начинается.
Единственный способ запустить службу и работать без сбоев — это прокомментировать строку Только для чтения каталогов =/
.
Буду признателен, если кто-нибудь поможет найти проблему.