Пространства имен Docker, препятствующие доступу к базе данных sqlite3 - PullRequest
0 голосов
/ 10 января 2019

У меня полный рот комментариев, запущенных внутри контейнера Docker с включенными пространствами имен. Рот загружается на мою веб-страницу, но я не могу оставлять комментарии. В журнале Docker я получаю следующее сообщение об ошибке, а также ошибку 500 в консоли инструментов dev.

attempt to write a readonly database
[GIN] 2018/12/16 - 11:57:23 | 500 |    1.956915ms |        10.0.0.0 | POST     /v1/comments

Внутри контейнера с полным пространством имен включено , я замечаю, что config.json и файл базы данных заданы как пользователь none.

/app # ls -la /app/data
total 40
drwxr-xr-x    2 nobody   nobody        4096 Dec 15 21:48 .
drwxr-xr-x    1 root     root          4096 Aug 27 16:25 ..
-rw-r--r--    1 nobody   nobody        1460 Dec 16 11:55 config.json
-rw-r--r--    1 nobody   nobody       24576 Dec 15 21:48 mouthful.db

Если я запускаю mouthful с пространствами имен отключен (с помощью --userns = host) mouthful запускается нормально, и я могу оставлять комментарии. Внутри контейнера с отключенными пространствами имен права доступа к файлам установлены как root.

/app # ls -la /app/data
total 40
drwxr-xr-x    2 root     root          4096 Dec 16 12:20 .
drwxr-xr-x    1 123000   123000        4096 Aug 27 16:25 ..
-rw-r--r--    1 root     root          1460 Dec 16 12:18 config.json
-rw-r--r--    1 root     root         24576 Dec 16 12:20 mouthful.db

Проблема в том, что процесс на хосте также установлен как root.

ps au | grep [b]in/sh
root      8420  0.5  0.0   1560   516 pts/0    Ss+  12:24   0:00 /bin/sh
Я считаю, что это риск для безопасности, потому что кому-то легче получить root-доступ к хосту.

Итак, как мне заставить sqlite3 работать с комментариями Mouthful с включенными пространствами имен Docker?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...