paperless icon indicating copy to clipboard operation
paperless copied to clipboard

consumer not running in Synology Docker

Open landcraft opened this issue 5 years ago • 9 comments
trafficstars

I used the example files to run docker-compose the 2 containers, and the set up was successful, however the consumer container keep restarting every few seconds, and so far, no documents have been scanned.

running docker logs, I get this:

Operations to perform: Apply all migrations: admin, auth, contenttypes, documents, reminders, sessions Running migrations: No migrations to apply. Starting document consumer at /consume with inotify Traceback (most recent call last): File "/usr/src/paperless/src/manage.py", line 11, in <module> execute_from_command_line(sys.argv) File "/usr/lib/python3.8/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line utility.execute() File "/usr/lib/python3.8/site-packages/django/core/management/__init__.py", line 365, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/lib/python3.8/site-packages/django/core/management/base.py", line 288, in run_from_argv self.execute(*args, **cmd_options) File "/usr/lib/python3.8/site-packages/django/core/management/base.py", line 335, in execute output = self.handle(*args, **options) File "/usr/src/paperless/src/documents/management/commands/document_consumer.py", line 97, in handle self.loop_inotify(mail_delta) File "/usr/src/paperless/src/documents/management/commands/document_consumer.py", line 127, in loop_inotify inotify.add_watch(directory, flags.CLOSE_WRITE | flags.MOVED_TO) File "/usr/lib/python3.8/site-packages/inotify_simple/inotify_simple.py", line 110, in add_watch return _libc_call(_libc.inotify_add_watch, self.fd, path, mask) File "/usr/lib/python3.8/site-packages/inotify_simple/inotify_simple.py", line 73, in _libc_call raise OSError(errno, os.strerror(errno)) PermissionError: [Errno 13] Permission denied

Any ideas?

landcraft avatar Oct 25 '20 16:10 landcraft

I should add that I've also tried setting it up within Docker in my DSM, and I seem to be facing a similar issue - continuous restarts

landcraft avatar Oct 25 '20 19:10 landcraft

Maybe the container does not have permission to access the ./consume directory on your host. What is the full path of the ./consume directory on your host? How do the permissions look like? Can you try giving it less restrictive permissions? Does it work then?

Tooa avatar Oct 26 '20 08:10 Tooa

I set the UID & GID to a user on my Synology that has access rights to the folder. Is there something else I need to do?

landcraft avatar Oct 26 '20 09:10 landcraft

Got the same error. If I'm in the container, I can touch and remove files. So I think it has something todo with the document_consumer.py script or something else

Edit: Running it with this command works. Maybe the docker-entrypoint.sh is wrong

python3 /usr/src/paperless/src/manage.py document_consumer

Selfmade-RuLeZ avatar Nov 18 '20 14:11 Selfmade-RuLeZ

Try running the consumer with --no-inotify.

jonaswinkler avatar Nov 18 '20 15:11 jonaswinkler

Edit: Running it with this command works. Maybe the docker-entrypoint.sh is wrong

python3 /usr/src/paperless/src/manage.py document_consumer

If you do this, but are running the web server within docker, you will run into trouble, since the consumer will put the consumed documents outside the docker volumes, while the webserver will expect the documents inside the container.

jonaswinkler avatar Nov 18 '20 15:11 jonaswinkler

Was a permission error, my bad. Created the folder before the paperless user had exist.

Edit: Was a permission error, but the consumer doesn't start either

Edit2: The user has to be the owner of the folder. Now its working fine. Does it have to be like that?

Edit3: Try to scan the first document:

2020-11-18 15:40:41 | stdout | PermissionError: [Errno 13] Permission denied: '/tmp/paperless/paperless-v5xl43mb'
2020-11-18 15:40:41 | stdout | _os.mkdir(file, 0o700)
2020-11-18 15:40:41 | stdout | File "/usr/lib/python3.8/tempfile.py", line 359, in mkdtemp
2020-11-18 15:40:41 | stdout | self.tempdir = tempfile.mkdtemp(prefix="paperless-", dir=self.SCRATCH)
2020-11-18 15:40:41 | stdout | File "/usr/src/paperless/src/documents/parsers.py", line 49, in __init__
2020-11-18 15:40:41 | stdout | super().__init__(path)
2020-11-18 15:40:41 | stdout | File "/usr/src/paperless/src/paperless_tesseract/parsers.py", line 40, in __init__
2020-11-18 15:40:41 | stdout | parsed_document = parser_class(doc)
2020-11-18 15:40:41 | stdout | File "/usr/src/paperless/src/documents/consumer.py", line 154, in try_consume_file
2020-11-18 15:40:41 | stdout | return func(*args, **kwds)
2020-11-18 15:40:41 | stdout | File "/usr/lib/python3.8/contextlib.py", line 75, in inner
2020-11-18 15:40:41 | stdout | if not self.try_consume_file(file):
2020-11-18 15:40:41 | stdout | File "/usr/src/paperless/src/documents/consumer.py", line 117, in consume_new_files
2020-11-18 15:40:41 | stdout | self.file_consumer.consume_new_files()
2020-11-18 15:40:41 | stdout | File "/usr/src/paperless/src/documents/management/commands/document_consumer.py", line 122, in loop_step
2020-11-18 15:40:41 | stdout | self.loop_step(mail_delta)
2020-11-18 15:40:41 | stdout | File "/usr/src/paperless/src/documents/management/commands/document_consumer.py", line 130, in loop_inotify
2020-11-18 15:40:41 | stdout | self.loop_inotify(mail_delta)
2020-11-18 15:40:41 | stdout | File "/usr/src/paperless/src/documents/management/commands/document_consumer.py", line 97, in handle
2020-11-18 15:40:41 | stdout | output = self.handle(*args, **options)
2020-11-18 15:40:41 | stdout | File "/usr/lib/python3.8/site-packages/django/core/management/base.py", line 335, in execute
2020-11-18 15:40:41 | stdout | self.execute(*args, **cmd_options)
2020-11-18 15:40:41 | stdout | File "/usr/lib/python3.8/site-packages/django/core/management/base.py", line 288, in run_from_argv
2020-11-18 15:40:41 | stdout | self.fetch_command(subcommand).run_from_argv(self.argv)
2020-11-18 15:40:41 | stdout | File "/usr/lib/python3.8/site-packages/django/core/management/__init__.py", line 365, in execute
2020-11-18 15:40:41 | stdout | utility.execute()
2020-11-18 15:40:41 | stdout | File "/usr/lib/python3.8/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
2020-11-18 15:40:41 | stdout | execute_from_command_line(sys.argv)
2020-11-18 15:40:41 | stdout | File "/usr/src/paperless/src/manage.py", line 11, in <module>
2020-11-18 15:40:41 | stdout | Traceback (most recent call last):
2020-11-18 15:40:41 | stdout | Consuming /consume/Scanner_.pdf

Output is sadly in the wrong direction, read from bottom to top

Selfmade-RuLeZ avatar Nov 18 '20 15:11 Selfmade-RuLeZ

Can you explain what you have done? I wan't to use it on my Synology also, but the container is stop with no errors in the log. Which volumes did you map and which environment variables did you use? I use this Docker-Image.

budda85 avatar Jan 04 '21 20:01 budda85

Can you explain what you have done? I wan't to use it on my Synology also, but the container is stop with no errors in the log. Which volumes did you map and which environment variables did you use? I use this Docker-Image.

I used this docker image and this guide managed to get it working, with a bit of fiddling (e.g. had to chmod+x ./manage.py before ./manage.py createsuperuser)

landcraft avatar Jan 05 '21 01:01 landcraft