To deploy an ABL application in a PAS for OpenEdge Docker container, you must first package it as a ZIP archive with a specific directory structure. This archive contains your compiled ABL code, configuration files, and deployment scripts that the Docker container uses to set up your application.

This topic describes the Progress-recommended approach for creating an ABL application archive. You can generate an ABL archive using other methods, but following this structure ensures compatibility with the standard PAS for OpenEdge Docker deployment process.

For more information about ABL applications, see ABL application architecture.

Prerequisites

Before creating your ABL application archive, ensure you have:
  • Docker environment
  • Docker Compose
  • A valid progress.cfg file
  • OpenEdge installed and an OpenEdge command environment available
  • Access to sample application files from the Progress Community site
  • A running database (or the ability to create and start one)

Directory structure of an ABL application

An ABL application archive for Docker deployment has the following directory structure:

sample_ABLApp/
├── .scripts/                  # Build and deployment scripts
├── conf/                      # Application-level configurations
│   └── startup.pf             # Database connection parameters
├── openedge/                  # Compiled ABL code (.r files)
├── tlr/                       # Runtime merge properties
│   └── openedge.properties.merge
├── webapps/                   # WebApp WAR files (for ABL web applications)
├── PASOEContent/              # PASOE-specific content
│   ├── build.properties
│   └── build.xml
├── build.properties           # Top-level build configuration
└── build.xml                  # Top-level build script

Directory purposes

The following table lists the purpose of each of the directory:
Directory Purpose
conf Contains ABL application-level configurations, including startup.pf for database connections and startup parameters.
openedge Stores compiled ABL code (.r files) that will be deployed to the container.
tlr Contains runtime merge properties, including openedge.properties.merge,which defines runtime behavior.
webapps Contains WAR files for ABL web applications (optional and required only for web apps).
.scripts Contains build and deployment automation scripts.
PASOEContent Contains Progress Application Server (PAS) for OpenEdge-specific build configurations.

Create an ABL application ZIP

This procedure uses the Sports sample application to demonstrate the workflow. You can adapt this workflow for your own ABL application.

Step 1: Prepare the ABL application directory

To create an application archive that can be used with a PAS for OpenEdge container, add the following artifacts to the project. These artifacts are located in the Sample App directory on the Progress Community site.
Note:
  • Here, Sample App directory refers to the downloaded Sports sample application content from Progress Community. ABL application directory referes to the target application folder that you intend to package. If you are packaging the Sports sample application without modification, the Sample App directory and the ABL application directory are the same. If you are packaging a custom application, copy the required files and directories from the Sample App directory to your ABL application directory before proceeding.
  • If you are using Sports as-is, skip artifact copy and continue to Step 2. If you are using your own ABL application, follow the artifact copy table.
    Artifacts Copy target
    .scripts <ABL_app_dir>/.scripts
    conf <ABL_app_dir>/conf
    tlr <ABL_app_dir>/tlr
    PASOEContent/build.properties <ABL_app_dir>/PASOEContent/build.properties
    PASOEContent/build.xml <ABL_app_dir>/PASOEContent/build.xml
    build.properties <ABL_app_dir>/build.properties
    build.xml <ABL_app_dir>/build.xml

Step 2: Start the database

If you do not have a running database server, create one. The following example uses the sports2000 database.
  1. Create a copy of the sports2000 database:
    prodb sports sports2000
  2. Start the database server (broker):
    proserve sports -S <DB_PORT>

Step 3: Build the sample application

  1. Navigate to the Sports application directory:
    cd Sports
  2. Update the ./conf/startup.pf file with your database connection details:
    -db sports -H <IP_ADDRESS_OF_DB_HOST> -S <DB_PORT>
  3. In an OpenEdge environment, run the package command:
    ant package
  4. Confirm that the ABL application archive file is created in output/package-output:
    • For Sports sample application, verify that the Sports.zip file is generated in Sports/output/package-output.
    • If you are using your own ABL application, the ZIP is created in <ABL_app_dir>\output\package-output\<ABL_app>.zip
You now have an application ZIP archive ready for PAS for OpenEdge container deployment.