AWS AMI products

Introduction

We use an Ubuntu image using Docker to deploy Panintelligence containers. This allows the dashboard to use good features from docker such as health checks and self healing properties. We have a predefined docker-compose YAML script built into the AMI that deploys the dashboard.

Why use docker?

The platform makes it easier, simpler, and safer to build, deploy and manage containers. Docker is essentially a toolkit that enables developers to build, deploy, run, update, and stop containers using simple commands and work-saving automation through a single API.

Breakdown of Docker deployment:

Docker-compose script for Panintelligence containers: “/var/panintelligence/docker-compose.yml

version: "3" services: dashboard: image: ${SERVER_IMAGE}:${SERVER_TAG} container_name: dashboard restart: unless-stopped env_file: - dashboard.env ports: - 8224:8224 expose: - 8224 volumes: - ${PANINTELLIGENCE_KEYS_PATH}:/var/panintelligence/Dashboard/keys/ - ${PANINTELLIGENCE_EXCEL_PATH}:/var/panintelligence/Dashboard/excel-files/ - ${PANINTELLIGENCE_THEMES_PATH}:/var/panintelligence/Dashboard/tomcat/webapps/panMISDashboardResources/themes/ - ${PANINTELLIGENCE_IMAGES_PATH}:/var/panintelligence/Dashboard/tomcat/webapps/panMISDashboardResources/images/ - ${PAINTELLIGENCE_LOGS_PATH}:/var/panintelligence/Dashboard/tomcat/logs/ scheduler: container_name: scheduler image: ${SCHEDULER_IMAGE}:${SCHEDULER_TAG} restart: unless-stopped env_file: - scheduler.env volumes: - ${PANINTELLIGENCE_KEYS_PATH}:/var/panintelligence/Dashboard/keys/ renderer: container_name: renderer image: ${RENDERER_IMAGE}:${RENDERER_TAG} restart: unless-stopped env_file: - renderer.env pirana: container_name: pirana image: ${PIRANA_IMAGE}:${PIRANA_TAG} restart: unless-stopped env_file: - pirana.env excel-reader: container_name: excel-reader image: ${EXCEL_IMAGE}:${EXCEL_TAG} restart: unless-stopped env_file: - excel-reader.env

Docker-compose script for Database: “/var/panintelligence/docker-compose.db.yml

version: "3" services: database: image: mariadb:latest container_name: database env_file: - database.env command: - --lower_case_table_names=1 restart: unless-stopped ports: - 3306:3306 expose: - 3306 volumes: - ${DB_DATA_PATH}:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] timeout: 20s retries: 10

Environment variables

Within the YAML script it uses environment files to pass in the variables. Each container has their own environment file. You can see what type of environment variables you can use here: https://panintelligence.atlassian.net/wiki/spaces/PD/pages/34374123/Environment+Variables

Environment file

Container

Description

Environment file

Container

Description

dashboard.env

dashboard

You will need to specify the external database credentials and Licence Ke, if you’re using “Panintelligence BYOL No Repo Database”.

scheduler.en