Reference15r1:Concept innovaphone App Platform Docker Container

From innovaphone wiki
Jump to navigation Jump to search
FIXME: Below described feature is experimental and not officially supported for use in productive environments.

The innovaphone App Platform Docker container provides a myApps App Platform instance that includes the AP Manager, Webserver and PostgreSQL. This container offers a ready-to-use environment for myApps applications and the innovaphone PBX.

Image Information

This chapter provides details about the Docker image used for the innovaphone App Platform.

Repository Details

Repository Host
docker.innovaphone.com
Image Name
cloud/kubernetes/innovaphone-platform-instance
docker.innovaphone.com/cloud/kubernetes/innovaphone-platform-instance:latest

Tagging and Versioning

The image is usually tagged with the build number according to innovaphone software releases:

Latest Tag
Use the latest tag for pulling the most recent service release.
Release Build Number
For production or version-specific deployments, use a specific build number as the tag (e.g., 130006).

Example:

docker pull docker.innovaphone.com/cloud/kubernetes/innovaphone-platform-instance:130006

Supported Architecture

This Docker image supports the linux/amd64 architecture.

Image Reference

An example of a full image reference using a specific release build number would be:

docker.innovaphone.com/cloud/kubernetes/innovaphone-platform-instance:130006

Ports

This chapter outlines the various ports exposed by the Docker container. The webserver ports are available immediately upon container startup, after start of the AP Manager and the Webserver, while the additional application ports become active after the app installation. In most cases, a one-to-one mapping is used, meaning the container port is mapped directly to the same host port unless otherwise specified.

Webserver Ports

HTTP

Container Port: 8080 Description: Used for accessing the built-in webserver immediately upon container startup.

HTTPS

Container Port: 8082 Description: Used for accessing the built-in webserver immediately upon container startup.

Additional Application Ports

Following additional container ports are avilable depending on installed and configured applications:

H323/TLS
1300
SIP
5060
SIPS
5061
LDAPS
1636
SMTP
8025
SMTPS
8587

Additional hint for Portmapping

docker run -d \
  --name=innovaphone \
  --restart unless-stopped \
  -p 9090:8080 \        #Container Host Port (external) 9090:8080 Container Port
  -p 9091:8082 \
  -p 5060:5060 \
  -p 5061:5061 \
  -p 1300:1300 \
  -p 1636:1636 \
  -p 8025:8025 \
  -p 8587:8587 \
  -v /path/of/data/innovaphone:/mnt/data \      #in this path you will find Apps, DBs & Logs
                                                #this path musst be used for backups!!
  -e WEBSERVERPORTHTTP=8080 \
  -e WEBSERVERPORTHTTPS=8082 \
  -e LOG_FLAGS=7 \
  -e LOG_SIZE=1048576 \
  -e DNSIPV4=8.8.8.8 \
  -e LIMIT_RAM=512 \        #Ram limit in MB
  -e LIMIT_DISK=10 \        #disk size in GB
  -e TZ=Europe/Berlin \
  docker.innovaphone.com/cloud/kubernetes/innovaphone-platform-instance:latest

Environment Variables (ENVs)

This chapter outlines the key environment variables used to configure the behavior of the innovaphone App Platform Docker container. These variables allow you to customize logging, port settings, resource limits, and more during startup and runtime.

LOG_FLAGS
Defines the integer representation for the trace flags of the AP Manager, according flags activated under the AP Manager / Diagnostics. See browser console message on Save button press (e.g. "logFlags":1 , if the "App" flag is activated).
LOG_FLAGS=7
LOG_SIZE
Specifies the maximum size in bytes for logs before rotation or management actions occur. Default: 5242880.
LOG_SIZE=1048576
WEBSERVERPORTHTTP
Sets the in-container HTTP port for the webserver. Default: 8080.
WEBSERVERPORTHTTP=8080
WEBSERVERPORTHTTPS
Sets the in-container HTTPS port for the webserver. Default: 8082.
WEBSERVERPORTHTTPS=8443
DNSIPV4
Specifies the in-container IPv4 address for DNS resolution. Overrides the deafult container runtime DNS server.
DNSIPV4=8.8.8.8
LIMIT_RAM
Sets the RAM limit for the container, in MB, controlling how much memory it may consume. Used by AP Manager to stop the app instances on overconsumption.
LIMIT_RAM=512
LIMIT_DISK
Defines the disk space limit in GB for the container to manage storage consumption. Used by AP Manager to stop the app instances on overconsumption.
LIMIT_DISK=10
MANAGER_DB_HOST
defines an external database host for the database of the App Platform Manager

If you hand database settings, the container will work without the local database server and doesn't need any storage at all (under development).

MANAGER_DB_HOST=172.16.14.35:5432 (port is optional)
MANAGER_DB_NAME
the external database name
MANAGER_DB_NAME=databasename
MANAGER_DB_USER
the external database user who has access
MANAGER_DB_USER=databaseuser
MANAGER_DB_PASSWORD
the password of the user
MANAGER_DB_PASSWORD=o1kk2hj312k3
DB_PROVISIONER_URL
a websocket URL to an external DBProvisioner App which is used to provide databases
DB_PROVISIONER_URL=wss://domain.com/domain.com/dbprovisioner

Volumes and Mounts

This container uses a dedicated internal mount path for the persistent data management across container restarts and updates.

Internal Data Volume

Mount Path
/mnt/data
Contents
  • Apps: Installed application binaries.
  • Databases: PostgreSQL files.
  • Logging: Log files for system and application events.

Mounting

To ensure that your data is preserved, map a host directory or Docker named volume to the container's /mnt/data path when running the container. For example:

docker run -d -v /path/on/host:/mnt/data docker.innovaphone.com/cloud/kubernetes/innovaphone-platform-instance:130006

This setup guarantees that your apps, associated data, databases, and logs persist independently of the container lifecycle.

Entrypoint

The container uses a fixed entrypoint:

ENTRYPOINT ["/entrypoint.sh"]

This script prepares the container and starts the AP Manager executable.

Logging and Monitoring

The log of the entrypoint.sh and of the AP manager is avilable as conatiner output. The installed applications store the ir log files under /mnt/data/var/log/apps/.

Usage Example

sudo docker run -d --restart unless-stopped --name innovaphoneAP -p 9090:8080 -p 9091:8082 -e WEBSERVERPORTHTTP=8080 -e WEBSERVERPORTHTTPS=8082 -v $(pwd)/myapps/:/mnt/data docker.innovaphone.com/cloud/kubernetes/innovaphone-platform-instance:latest

This command runs the container in detached mode with automatic restart. It names the container innovaphoneAP, maps host ports 9090 and 9091 to the container's HTTP and HTTPS ports, sets the webserver port environment variables, mounts a host directory to /mnt/data, and starts the AP Manager. After container start up the AP manager web UI is accessible via http://localhost:9090 or https://localhost:9091.