Add a docker image for watching a directory

This commit is contained in:
Eike Kettner 2020-05-25 19:43:06 +02:00
parent f33c2a2293
commit 3d902c3273
4 changed files with 57 additions and 0 deletions

View File

@ -0,0 +1,15 @@
FROM alpine:latest
LABEL maintainer="eikek0 <eike@docspell.org>"
RUN apk add --no-cache unzip curl bash inotify-tools
RUN mkdir -p /opt \
&& cd /opt \
&& curl -L -o docspell.zip https://github.com/eikek/docspell/releases/download/v0.6.0/docspell-tools-0.6.0.zip \
&& unzip docspell.zip \
&& rm docspell.zip \
&& apk del unzip \
&& chmod 755 /opt/docspell-tools-0.6.0/*.sh
ENTRYPOINT ["/opt/docspell-tools-0.6.0/consumedir.sh"]

View File

@ -29,5 +29,16 @@ services:
- ${PWD}/docspell.conf:/opt/docspell.conf
depends_on:
- db
consumedir:
image: eikek0/docspell:consumedir-0.6.0
container_name: docspell-consumedir
command: --path /opt/docs -m http://restserver:7880/api/v1/open/upload/item/$SOURCE_ID
environment:
- SOURCE_ID=${SOURCE_ID:-none}
volumes:
- ${PWD}/docs:/opt/docs
depends_on:
- restserver
volumes:
postgres_data:

View File

@ -62,3 +62,25 @@ This unit file is just an example, it needs some fiddling. It assumes
an existing user `someuser` that is used to run this service. The url
`http://localhost:7880/api/v1/open/upload/...` is an anonymous upload
url as described [here](../uploading#anonymous-upload).
## Docker
The provided docker image runs this script to watch a directory for
new files. If a new file is detected, it is pushed to docspell.
For this to work, the container must know about a valid upload url.
Therefore, you must first signup and create such an upload url, as
described [here](doc/uploading#anonymous-upload). Get only the id
(something like `AvR6sA8GKFm-hgYDgZfwzXa-Tqnu8yqyz6X-KzuefvEvrRf`) and
define an environment variable `SOURCE_ID` with that value before
running `docker-compose up` a second time.
```
export SOURCE_ID="AvR6sA8GKFm-hgYDgZfwzXa-Tqnu8yqyz6X-KzuefvEvrRf"
docker-compose up
```
Now you can create a folder `./docs` and place all files in there that
you want to import. Once dropped in this folder the `consumedir`
container will push it to docspell.

View File

@ -91,3 +91,12 @@ available in the `/docker` folder.
The directory contains a file `docspell.conf` that you can
[modify](doc/configure) as needed.
### Watching files in a directory
This setup starts a container running the
[`consumedir.sh`](doc/tools/consumedir) script. It is configured to
watch one directory and upload files arriving in there to docspell.
Please see the [`consumedir.sh`](doc/tools/consumedir#docker) docs for
additional steps.