aki_prj23_transparenzregister/local-docker-compose.yml
Tristan Nolde 92d14b5824
Ingest schedule (#391)
Includes a new "app" running the ingestion jobs (aka fetch_news and
find_missing_companies + enrich_company_financials) on a schedule.

This also fixes an issue with the previous schedule implementation by
persisting the schedule in a file that survives new deployment and
continues where it left off.
2023-12-04 19:05:52 +01:00

107 lines
3.2 KiB
YAML

version: '3.8'
name: local-aki_prj23_transparenzregister
services:
ingest:
image: ingestor:local-build
build:
context: .
target: ingest
environment:
# mongo access
PYTHON_MONGO_PASSWORD: ${PYTHON_MONGO_PASSWORD:?error}
PYTHON_MONGO_USERNAME: ${PYTHON_MONGO_USERNAME:-root}
PYTHON_MONGO_HOST: ${PYTHON_MONGO_HOST:-mongodb}
PYTHON_MONGO_PORT: ${PYTHON_MONGO_PORT:-27017}
PYTHON_MONGO_DATABASE: ${PYTHON_MONGO_DATABASE:-transparenzregister}
PYTHON_INGEST_SCHEDULE: ${PYTHON_INGEST_SCHEDULE:-4}
PYTHON_INGEST_SCHEDULE_FILE: ${PYTHON_INGEST_SCHEDULE_FILE:-/data/ingest_schedule.json}
volumes:
- ingest_data:/data
mongodb:
image: mongo:4.4.6
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: ${PYTHON_MONGO_USERNAME:-root}
MONGO_INITDB_ROOT_PASSWORD: ${PYTHON_MONGO_PASSWORD:?error}
MONGO_INITDB_DATABASE: ${PYTHON_MONGO_DATABASE:-transparenzregister}
ports:
- ${PYTHON_MONGO_PORT}:27017
volumes:
- mongo_data:/data/db
deploy:
replicas: 1 # set to one to activate
postgres:
image: postgres:15.4
restart: always
environment:
POSTGRES_USER: ${PYTHON_POSTGRES_USERNAME:-postgres}
POSTGRES_PASSWORD: ${PYTHON_POSTGRES_PASSWORD:?error}
POSTGRES_DB: ${PYTHON_POSTGRES_DATABASE:-db}
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- ${PYTHON_POSTGRES_PORT:-5432}:5432
deploy:
replicas: 1 # set to one to activate
data-transformation:
image: data-transformation:local-build
depends_on:
- postgres
- mongodb
build:
context: .
target: data-transformation
environment:
# postgres access
PYTHON_POSTGRES_PASSWORD: ${PYTHON_POSTGRES_PASSWORD:?error}
PYTHON_POSTGRES_USERNAME: ${PYTHON_POSTGRES_USERNAME:-postgres}
PYTHON_POSTGRES_HOST: ${PYTHON_POSTGRES_HOST:-postgres}
PYTHON_POSTGRES_DATABASE: ${PYTHON_POSTGRES_DATABASE:-db}
PYTHON_POSTGRES_PORT: ${PYTHON_POSTGRES_PORT:-5432}
# mongo access
PYTHON_MONGO_PASSWORD: ${PYTHON_MONGO_PASSWORD:?error}
PYTHON_MONGO_USERNAME: ${PYTHON_MONGO_USERNAME:-root}
PYTHON_MONGO_HOST: ${PYTHON_MONGO_HOST:-mongodb}
PYTHON_MONGO_PORT: ${PYTHON_MONGO_PORT:-27017}
PYTHON_MONGO_DATABASE: ${PYTHON_MONGO_DATABASE:-transparenzregister}
web-server:
image: web-server:local-build
build:
context: .
target: web-server
depends_on:
- postgres
ports:
- 8888:8888
environment:
PYTHON_POSTGRES_USERNAME: ${PYTHON_POSTGRES_USERNAME:-postgres}
PYTHON_POSTGRES_PASSWORD: ${PYTHON_POSTGRES_PASSWORD:?error}
PYTHON_POSTGRES_HOST: ${PYTHON_POSTGRES_HOST:-postgres}
PYTHON_POSTGRES_DATABASE: ${PYTHON_POSTGRES_DATABASE:-db}
PYTHON_POSTGRES_PORT: ${PYTHON_POSTGRES_PORT:-5432}
PYTHON_DASH_LOGIN_PW: ${PYTHON_DASH_LOGIN_PW}
PYTHON_DASH_LOGIN_USERNAME: ${PYTHON_DASH_LOGIN_USERNAME}
PORT: 8888
HOST: 0.0.0.0
volumes:
postgres_data:
mongo_data:
ingest_data:
networks:
default:
driver: bridge
ipam:
driver: default
config:
- subnet: 192.168.7.0/24
gateway: 192.168.7.1