build first set of docker container in pipline and place them in the the github registry (#142)

- added a Dockerfile for the thre containers
- added a workflow step to build and placing the container in the
registry
- added a docker-compose.yaml to use the build images
- added a docker compose to build the images locally and a script for
prebuild steps
This commit is contained in:
2023-09-24 18:32:52 +02:00
committed by GitHub
parent 5c8d20f4c2
commit 091e67de79
21 changed files with 447 additions and 47 deletions

View File

@@ -1,27 +1,75 @@
version: '3.8'
services:
postgres:
image: postgres
restart: always
ingest:
image: ${CR:-ghcr.io/fhswf/aki_prj23_transparenzregister}/ingest:${TAG:-latest}
depends_on:
- postgres
- mongodb
environment:
POSTGRES_PASSWORD: postgres
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- 5432: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}
mongodb:
image: mongo:4.4.6
container_name: mongodb
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: username
MONGO_INITDB_ROOT_PASSWORD: password
MONGO_INITDB_DATABASE: transparenzregister
ports:
- 27017:27017
MONGO_INITDB_ROOT_USERNAME: ${PYTHON_MONGO_USERNAME:-root}
MONGO_INITDB_ROOT_PASSWORD: ${PYTHON_MONGO_PASSWORD:?error}
MONGO_INITDB_DATABASE: ${PYTHON_MONGO_DATABASE:-transparenzregister}
volumes:
- mongo_data:/data/db
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
data-transformation:
image: ${CR:-ghcr.io/fhswf/aki_prj23_transparenzregister}/data-transformation:${TAG:-latest}
depends_on:
- postgres
- mongodb
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: ${CR:-ghcr.io/fhswf/aki_prj23_transparenzregister}/web-server:${TAG:-latest}
depends_on:
- postgres
ports:
- ${HTTP_PORT}:${HTTP_PORT}
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: ${HTTP_PORT}
HOST: 0.0.0.0
volumes:
postgres_data:
mongo_data: