Skip to content
Snippets Groups Projects
docker-compose.yml 5.05 KiB
version: '3'

services:
    client:
        build:
            context: ./client
            dockerfile: ./Dockerfile.dev
        ports:
            - 4200:4200
        working_dir: /project
        volumes:
            - ./client:/project
        command: ng serve --host=0.0.0.0 --disable-host-check --port 4200
    server:
        build:
            context: ./server
            dockerfile: ./Dockerfile.dev
        environment:
            docker: "true"
            DISPLAY_ERROR_DETAILS: "true"
            DATABASE_DEV_MODE: 1
            DATABASE_CO_DRIVER: "pdo_pgsql"
            DATABASE_CO_HOST: "db"
            DATABASE_CO_PORT: 5432
            DATABASE_CO_DBNAME: "anis_metamodel"
            DATABASE_CO_USER: "postgres"
            DATABASE_CO_PASSWORD: "postgres"
            DATA_PATH: "/data"
            ARCHIVE_FOLDER: "/ARCHIVE"
            LOGGER_NAME: "anis-metamodel"
            LOGGER_PATH: "php://stderr"
            LOGGER_LEVEL: "debug"
            SERVICES_URL: "http://localhost:5000"
            BASE_HREF: "/"
            SSO_AUTH_URL: "http://localhost:8180"
            SSO_REALM: "anis"
            SSO_CLIENT_ID: "anis-client"
            TOKEN_ENABLED: 0
            TOKEN_JWKS_URL: "http://keycloak:8180/realms/anis/protocol/openid-connect/certs"
            TOKEN_ADMIN_ROLES: anis_admin,superuser
            RMQ_HOST: rmq
            RMQ_PORT: 5672
            RMQ_USER: admin
            RMQ_PASSWORD: admin
            MATOMO_ENABLED: 0
            MATOMO_SITE_ID: 1
            MATOMO_TRACKER_URL: http://localhost:8888
        ports:
            - 8080:80
        volumes:
            - ./server:/project
            - ./conf-dev/dev-php.ini:/usr/local/etc/php/conf.d/dev-php.ini
            - ./conf-dev/init-keycloak.sh:/mnt/init-keycloak.sh
            - ./conf-dev/create-db.sh:/mnt/create-db.sh
            - ./data:/data
    services:
        image: python:3.8
        environment:
            PYTHONPATH: "/project/src"
            FLASK_ENV: development
            DATA_PATH: /data
            SERVER_URL: http://server
        working_dir: /project
        ports:
            - 5000:5000
        volumes:
            - ./services:/project
            - ./data:/data
        command: /bin/bash -c "source /project/venv/bin/activate && exec python src/anis_services/app.py"
    tasks:
        image: python:3.8
        # stdin_open: true
        # tty: true
        # command: sleep infinity
        environment:
            PYTHONPATH: "/project/src"
            DATA_PATH: /data
            ARCHIVE_FOLDER: "/ARCHIVE"
            SERVER_URL: http://server
            RMQ_HOST: rmq
            RMQ_PORT: 5672
            RMQ_USER: admin
            RMQ_PASSWORD: admin
        working_dir: /project
        volumes:
            - ./tasks:/project
            - ./data:/data
        command: /bin/bash -c "source /project/venv/bin/activate && exec python src/anis_tasks/app.py"
    keycloak:
        image: bitnami/keycloak:18
        environment:
            KEYCLOAK_DATABASE_HOST: db
            KEYCLOAK_DATABASE_PORT: 5432
            KEYCLOAK_DATABASE_NAME: keycloakdb
            KEYCLOAK_DATABASE_USER: keycloak
            KEYCLOAK_DATABASE_PASSWORD: keycloak
            KEYCLOAK_DATABASE_SCHEMA: public
            KEYCLOAK_ADMIN_USER: admin
            KEYCLOAK_ADMIN_PASSWORD: admin
            KEYCLOAK_BIND_ADDRESS: 0.0.0.0
            KEYCLOAK_HTTP_PORT: 8180
            KEYCLOAK_EXTRA_ARGS: -Dkeycloak.import=/tmp/keycloak-anis-realm.json
        ports:
            - 8180:8180
        volumes:
            - ./conf-dev/keycloak-anis-realm.json:/tmp/keycloak-anis-realm.json
    db:
        image: postgres:15
        environment:
            POSTGRES_PASSWORD: "postgres"
        volumes:
            - pgdata:/var/lib/postgresql/data
            - ./conf-dev/data_test.sql:/sql/data_test.sql
            - ./conf-dev/init-postgres.sh:/docker-entrypoint-initdb.d/init-postgres.sh
    rmq:
        image: rabbitmq:3-management
        environment:
            RABBITMQ_DEFAULT_USER: admin
            RABBITMQ_DEFAULT_PASS: admin
        ports:
            - 15672:15672
    mailer:
        image: djfarrelly/maildev
        ports:
            - 1080:80
    mariadb:
        image: mariadb
        command: --max-allowed-packet=64MB
        volumes:
            - mariadata:/var/lib/mysql
            - ./conf-dev/matomo.sql:/docker-entrypoint-initdb.d/matomo.sql
        environment:
            - MARIADB_ROOT_PASSWORD=maria
            - MARIADB_DATABASE=matomodb
            - MARIADB_USER=matomo
            - MARIADB_PASSWORD=matomo
    matomo:
        image: matomo
        volumes:
            - ./conf-dev/matomo-config.ini.php:/var/www/html/config/config.ini.php
            - matomo:/var/www/html
        environment:
            - MATOMO_DATABASE_HOST=mariadb
            - MATOMO_DATABASE_ADAPTER=mysql
            - MATOMO_DATABASE_TABLES_PREFIX=matomo_
            - MATOMO_DATABASE_USERNAME=matomo
            - MATOMO_DATABASE_PASSWORD=matomo
            - MATOMO_DATABASE_DBNAME=matomodb
        ports:
            - 8888:80
volumes:
    pgdata:
    mariadata:
    matomo: