2020-11-01 23:01:36 +01:00
|
|
|
version: "3.4"
|
Add Dockerfile for application and documentation
This commit adds a `Dockerfile` to the root of the project, accompanied
by a `docker-compose.yml.example` for simplified deployment. The
`Dockerfile` is agnostic to whether it will be the webserver, the
consumer, or if it is run for a one-off command (i.e. creation of a
superuser, migration of the database, document export, ...).
The containers entrypoint is the `scripts/docker-entrypoint.sh` script.
This script verifies that the required permissions are set, remaps the
default users and/or groups id if required and installs additional
languages if the user wishes to.
After initialization, it analyzes the command the user supplied:
- If the command starts with a slash, it is expected that the user
wants to execute a binary file and the command will be executed
without further intervention. (Using `exec` to effectively replace
the started shell-script and not have any reaping-issues.)
- If the command does not start with a slash, the command will be
passed directly to the `manage.py` script without further
modification. (Again using `exec`.)
The default command is set to `--help`.
If the user wants to execute a command that is not meant for `manage.py`
but doesn't start with a slash, the Docker `--entrypoint` parameter can
be used to circumvent the mechanics of `docker-entrypoint.sh`.
Further information can be found in `docs/setup.rst` and in
`docs/migrating.rst`.
For additional convenience, a `Dockerfile` has been added to the `docs/`
directory which allows for easy building and serving of the
documentation. This is documented in `docs/requirements.rst`.
2016-02-17 18:45:04 +01:00
|
|
|
services:
|
2020-10-29 00:46:57 +01:00
|
|
|
db:
|
|
|
|
|
image: postgres:13
|
|
|
|
|
#restart: always
|
2020-10-29 22:30:36 +01:00
|
|
|
volumes:
|
|
|
|
|
- pgdata:/var/lib/postgresql/data
|
2020-10-29 00:46:57 +01:00
|
|
|
environment:
|
|
|
|
|
POSTGRES_DB: paperless
|
|
|
|
|
POSTGRES_USER: paperless
|
|
|
|
|
POSTGRES_PASSWORD: paperless
|
|
|
|
|
|
|
|
|
|
webserver:
|
|
|
|
|
build: .
|
2020-11-04 20:09:35 +01:00
|
|
|
image: paperless-ng
|
2020-10-29 00:46:57 +01:00
|
|
|
#restart: always
|
|
|
|
|
depends_on:
|
|
|
|
|
- db
|
|
|
|
|
ports:
|
|
|
|
|
- "8000:8000"
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "curl", "-f", "http://localhost:8000"]
|
|
|
|
|
interval: 30s
|
|
|
|
|
timeout: 10s
|
|
|
|
|
retries: 5
|
|
|
|
|
volumes:
|
|
|
|
|
- data:/usr/src/paperless/data
|
2020-10-29 22:30:36 +01:00
|
|
|
- media:/usr/src/paperless/media
|
|
|
|
|
- ./export:/usr/src/paperless/export
|
2020-11-01 23:01:36 +01:00
|
|
|
- ./consume:/usr/src/paperless/consume
|
2020-10-29 00:46:57 +01:00
|
|
|
env_file: docker-compose.env
|
2020-11-01 23:01:36 +01:00
|
|
|
command: ["supervisord", "-c", "/etc/supervisord.conf"]
|
Add Dockerfile for application and documentation
This commit adds a `Dockerfile` to the root of the project, accompanied
by a `docker-compose.yml.example` for simplified deployment. The
`Dockerfile` is agnostic to whether it will be the webserver, the
consumer, or if it is run for a one-off command (i.e. creation of a
superuser, migration of the database, document export, ...).
The containers entrypoint is the `scripts/docker-entrypoint.sh` script.
This script verifies that the required permissions are set, remaps the
default users and/or groups id if required and installs additional
languages if the user wishes to.
After initialization, it analyzes the command the user supplied:
- If the command starts with a slash, it is expected that the user
wants to execute a binary file and the command will be executed
without further intervention. (Using `exec` to effectively replace
the started shell-script and not have any reaping-issues.)
- If the command does not start with a slash, the command will be
passed directly to the `manage.py` script without further
modification. (Again using `exec`.)
The default command is set to `--help`.
If the user wants to execute a command that is not meant for `manage.py`
but doesn't start with a slash, the Docker `--entrypoint` parameter can
be used to circumvent the mechanics of `docker-entrypoint.sh`.
Further information can be found in `docs/setup.rst` and in
`docs/migrating.rst`.
For additional convenience, a `Dockerfile` has been added to the `docs/`
directory which allows for easy building and serving of the
documentation. This is documented in `docs/requirements.rst`.
2016-02-17 18:45:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
volumes:
|
2020-10-29 00:46:57 +01:00
|
|
|
data:
|
2020-10-29 22:30:36 +01:00
|
|
|
media:
|
|
|
|
|
pgdata:
|