opendatateam / docker-udata

udata and plugins all-in-one Docker image
https://hub.docker.com/r/udata/udata/builds
MIT License
15 stars 12 forks source link
docker-image elasticsearch redis standalone theme udata udata-configuration uwsgi

udata all-in-one Docker image

Quick start

cd docker-udata
docker-compose up

To be able to upload files, you will need to access the docker instance through an URL with a tld, i.e. localhost.local for example (set it in your /etc/hosts on your Unix machine).

Check that localhost.local:7000 is available in a browser.

Details

This Docker image provide udata as well as known plugins and gouvfr theme.

It is packaged to run within uwsgi with gevent support.

By default, it exposes the frontend on the port 7000 and expect the following services:

and use the following paths:

You can customize configuration by providing a custom udata.cfg or custom uwsgi ini file.

A sample docker-compose.yml file is also available in the repository.

Running docker image service

Fetch the latest Docker image version

docker pull udata/udata

Then you can run the container with different configurations:

Running standalone instance

You can run standalone (front/worker/beat) instance with the front, worker and beat commands:

docker run udata/udata front
docker run udata/udata worker
docker run udata/udata beat

Running udata commands

You can also execute udata commands with:

docker run [DOCKER OPTIONS] udata/udata [UDATA COMMAND]

By example, to initialise the database with fixtures and initialize the search index:

docker run -it --rm udata/udata init

List all commands with:

docker run -it --rm udata/udata --help

Note: Some commands requires either MongoDB, Redis or Elasticsearch to be up and ready.

Running celery commands

You are also able to run celery commands with:

docker run -it --rm udata/udata celery status

Running bash

For debugging purpose you can acces a bash prompt with:

docker run [DOCKER OPTIONS] udata/udata bash

Installing extra sources

:warning: This section is here as an example of what you could do but is not the recommended way to develop on custom sources. See getting started to start a development environment.

See the sample/theme directory to see a full theme development using docker-compose.

You can install extra sources by mounting directories as subdirectories of /src/.

Given you have a udata theme awesome-theme in my-theme directory and you want to use docker to hack on it with live reload, you need to have the following lines in your udata.cfg:

PLUGINS = ['my-theme']
THEME = 'awesome-theme'

Then you can run the udata Development server with:

docker run -it -v `$PWD`/my-theme:/src/my-theme -v `$PWD`/udata.cfg:/udata/udata.cfg --rm udata/udata serve

Your theme will be installed and activated.

Examples

You can see some docker-compose configuration examples in the sample directory of this repository.