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 |
---|---|---|
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 |
CUSTOMER NEWS - Our November 24 Release Is Now Available - Download It Now!