No Results
edgeCore Docker Build & Deployment Guide

This guide provides a comprehensive walkthrough for building and deploying edgeCore 5.1.1 using Docker and Docker Compose. It combines the steps for preparing and building the Docker image with detailed deployment, configuration, and operational guidance. The goal is to ensure a consistent, secure, and repeatable deployment process for both internal and external users.

Building the Docker Image

Preparing the Application Files

edgeCore is distributed as a ZIP archive. Before building the Docker image, the application must be unpacked.

Bash

mkdir -p edgeCore-Docker/edgeCore-5.1.1
# Move your zip file into the directory 
cp edgeCore-5.1.1.zip edgeCore-Docker/ cd edgeCore-Docker 
# Unpack the application
unzip edgeCore-5.1.1.zip -d edgeCore-5.1.1/ 
rm edgeCore-5.1.1.zip

Creating the Dockerfile

Inside the edgeCore-Docker directory, create a file named Dockerfile with the following content:

Dockerfile

# ---------------------------------------------
# EdgeCore 5.1.1 Dockerfile (Ubuntu 24.04 + Java 25
# Pre-unpacked version
# ---------------------------------------------
FROM ubuntu:24.04

# -----------------------------
# Environment variables
# -----------------------------
ENV EDGECORE_HOME=/opt/edgeCore
ENV TOMCAT_USER=edge
ENV TOMCAT_GROUP=edge
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US.UTF-8
ENV LC_COLLATE=C
ENV CATALINA_HOME=$EDGECORE_HOME/tomcat
ENV PATH=$CATALINA_HOME/bin:$PATH

WORKDIR $EDGECORE_HOME

# -----------------------------
# Install minimal dependencies
# -----------------------------
RUN apt-get update && \
    apt-get install -y wget curl telnet procps findutils sudo locales tar && \
    locale-gen en_US.UTF-8 && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

# -----------------------------
# Install Java 25 (Amazon Corretto)
# -----------------------------
RUN mkdir -p /opt/java && cd /opt/java && \
    wget -q https://corretto.aws/downloads/latest/amazon-corretto-25-x64-linux-jdk.tar.gz -O corretto-25.tar.gz && \
    tar -xzf corretto-25.tar.gz && \
    mv amazon-corretto-25* java-25 && \
    rm corretto-25.tar.gz

ENV JAVA_HOME=/opt/java/java-25
ENV PATH=$JAVA_HOME/bin:$PATH
ENV JAVA_VERSION=25

# -----------------------------
# Create edge user
# -----------------------------
RUN groupadd -g 1001 $TOMCAT_GROUP && \
    useradd -m -u 1001 -g 1001 -s /bin/bash $TOMCAT_USER

# -----------------------------
# Copy pre-unpacked EdgeCore
# -----------------------------
COPY edgeCore-5.1.1/ $EDGECORE_HOME/

# -----------------------------
# Prepare runtime/shared folders
# -----------------------------
RUN mkdir -p $EDGECORE_HOME/database \
             $EDGECORE_HOME/exports \
             $EDGECORE_HOME/logs \
             $EDGECORE_HOME/shared \
             $EDGECORE_HOME/shared/data \
             $EDGECORE_HOME/shared/scripts \
             $EDGECORE_HOME/shared/modules \
             $EDGECORE_HOME/shared/static-web \
             $EDGECORE_HOME/shared/webrules && \
    cd $EDGECORE_HOME && \
    for dir in data scripts modules static-web webrules; do \
        rm -rf $dir && \
        ln -s shared/$dir $dir; \
    done

# -----------------------------
# Permissions
# -----------------------------
RUN chown -R 1001:1001 $EDGECORE_HOME && \
    chmod -R g+w $EDGECORE_HOME

USER 1001:1001
WORKDIR $EDGECORE_HOME

# -----------------------------
# Entrypoint
# -----------------------------
CMD ["bin/edge.sh", "run"]

Dockerfile Summary

The Dockerfile performs the following key actions:

  • Uses Ubuntu 24.04 as the base image.
  • Installs minimal runtime dependencies and Amazon Corretto Java 25.
  • Creates a dedicated edge runtime user.
  • Copies the pre-unpacked EdgeCore distribution.
  • Creates shared runtime directories for persistent data.
  • Starts the server using bin/edge.sh run.

Building and Verifying the Image

Run the following command from the directory containing the Dockerfile:

Bash

docker build -t edgecore:5.1.1 .

Verification Steps:

  1. Check image: docker images
  2. Test run: docker run -d -p 8080:8080 –name edgecore-test edgecore:5.1.1
  3. Confirm logs: docker logs edgecore-test

Docker Deployment

This section describes how to build and run edgeCore 5.1.1 using Docker and Docker Compose. The instructions were validated using the following environment:

Components:

  • edgeCore: 5.1.1
  • Operating System: Ubuntu 24.04
  • Docker Engine: 29.2.0
  • Docker Compose: v5.0.2
  • Java Runtime: Amazon Corretto 25

Architecture Overview

edgeCore runs inside a Docker container based on Ubuntu 24.04 with Amazon Corretto Java 25. Application data and configuration are stored outside of the container using mounted host directories. This ensures persistence across restarts and upgrades.

Typical host directory structure:

edgecore-5.1.1/

 ├── docker-compose.yml

 ├── conf/

 ├── database/

 ├── exports/

 ├── jsp/

 ├── data/

 ├── scripts/

 ├── static-web/

 ├── icons/

 ├── webrules/

 └── modules/

The conf/ directory contains runtime configuration, SSL certificates, and environment variables. Separating configuration and data from the container allows easier upgrades, certificate management, and backup integration.

Prerequisites

Ensure Docker and Docker Compose are installed:

Bash

docker version

docker compose version

Example tested versions:

  • Docker Engine: 29.2.0
  • Docker Compose: v5.0.2

Running edgeCore with Docker Compose

Example docker-compose.yml:

services:

  edgecore:

  image: edgeCore:5.1.1

  container_name: edgecore

  ports:

  - "8080:8080"

  volumes:

  - ./database:/opt/edgeCore/database

  - ./exports:/opt/edgeCore/exports

  - ./jsp:/opt/edgeCore/jsp

  - ./data:/opt/edgeCore/data

  - ./scripts:/opt/edgeCore/scripts

  - ./static-web:/opt/edgeCore/static-web

  - ./icons:/opt/edgeCore/icons

  - ./webrules:/opt/edgeCore/webrules

  - ./modules:/opt/edgeCore/modules

  - ./conf:/opt/edgeCore/conf

  restart: unless-stopped

Start edgeCore:

docker compose up -d

Stop edgeCore:

docker compose down

Check container status:

docker ps

Accessing edgeCore

Once running, access edgeCore via:

http://SERVER-IP:8080

Example:
http://localhost:8080

Configuration

Runtime configuration is controlled via:

conf/environment.sh

Example parameters:

  • HTTP_PORT=8080
  • JAVA_MEMORY_MAX=2662
  • JAVA_MEMORY_INIT=2662
  • EDGE_SERVER_STANDALONE=true
  • EDGE_SERVER_MODE=standalone

Additional features can be enabled with environment variables:

  • EDGE_SERVER_RPA=true
  • EDGE_SERVER_AI_ASSIST=true

Database Information

edgeCore 5.1.1 uses the embedded H2 database.

Database files are stored in: database/

Inside the container: /opt/edgeCore/database

Since this directory is mounted as a volume, data persists across container restarts.

Backup and Restore

edgeCore provides a built-in backup functionality via:

Always perform a backup before upgrades or major configuration changes. Refer to the official edgeCore Backup documentation for restore procedures.

Logs

View logs:

docker logs -f edgecore

or

docker compose logs -f

Security Recommendations

  • Run edgeCore behind a reverse proxy or load balancer
  • Enable HTTPS with valid SSL certificates
  • Restrict exposed ports (only expose what is necessary)
  • Regularly update Docker images and host OS
  • Use non-root users inside the container where possible
  • Apply least privilege to mounted volumes
  • Maintain regular backups and test restore procedures
  • Monitor container logs and resource usage for anomalies

Troubleshooting

  • Container fails to start:
    docker logs edgecore
  • Port conflict (8080 in use):
    Modify port mapping in docker-compose.yml:
    ports: – “8081:8080”
    Then access via http://SERVER-IP:8081
  • Unzip errors during build:
    Ensure the archive is valid and fully copied before extraction.
  • Java runtime issues:
    Confirm the base image includes the correct JRE (Amazon Corretto 25).

Terms | Privacy