This repository contains all configuration to get the DECIDe microservices stack running. It is very much a work in progress.
This repository contains multiple docker-compose files
- docker-compose.yml provides the backend components.
- docker-compose.dev.yml provides small changes for development purposes.
- Publishes the entrypoint to the services on port 80, so all endpoints can be reached easily.
- Publishes the triplestore on port 8890, so the SPARQL endpoint (
/sparql) can be reached easily.
- Clone the repository and go into the directory
- To ease all typing for
docker composecommands create a compose override file in the root of the project
touch docker-compose.override.yml- Create an env file so we can define the compose files and other environment variables
touch .env- Set the
COMPOSE_FILEin the .env
COMPOSE_FILE=docker-compose.yml:docker-compose.dev.yml:docker-compose.override.ymlThis should be your go-to way of starting the stack.
docker compose up -d # run without -d flag when you don't want to run it in the backgroundRunning the application on mac silicon can cause some troubles. For this reason an extra docker-compose file has been included, this is the file docker-compose.mac.yml, this file should be included when starting the stack. The command docker-compose up -f docker-compose.yml -f docker-compose.dev.yml up -d now becomes docker compose -f docker-compose.yml -f docker-compose.dev.yml -f docker-compose.mac.yml up -d
There are two main pain points:
- Mac has an arm64 processor, a lot of the services don't have a multi-platform image. In the case they only have a amd64 image, docker will gave you a warning about this. In general this is not a real problem since your macbook can just emulate amd64, but still the warnings are annoying, so these are suppressed.
- At the moment this project was setup the service mu-identifier weren't working for mac (at least on my device), so you have to build these yourself, and gave them the appropriate image name and tag.
Decision data from Lokaal Beslist is ingested by a consumer. The initial sync and/or delta ingest should be enabled manually in docker-compose.override.yml:
services:
lokaal-beslist-consumer:
environment:
DCR_DISABLE_INITIAL_SYNC: false
DCR_DISABLE_DELTA_INGEST: falseSince we use dispatcher v2, which dispatches on hostname, we'll have to update /etc/hosts.
Add an entry similar to the following. Ensure the first part of the domain starts with dashboard.:
127.0.0.1 dashboard.localhost