Generate a ZIP file of your ABL application
- Last Updated: July 24, 2026
- 3 minute read
- OpenEdge
- Version 13.0
- Documentation
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
- 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:
|
Directory purposes
| 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
- Here, Sample App directory refers to the downloaded
Sportssample application content from Progress Community. ABL application directory referes to the target application folder that you intend to package. If you are packaging theSportssample 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
Sportsas-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
sports2000 database.- Create a copy of the
sports2000database:prodb sports sports2000 - Start the database server (broker):
proserve sports -S <DB_PORT>
Step 3: Build the sample application
- Navigate to the Sports application directory:
cd Sports - Update the ./conf/startup.pf file with your database
connection details:
-db sports -H <IP_ADDRESS_OF_DB_HOST> -S <DB_PORT> - In an OpenEdge environment, run the package command:
ant package - Confirm that the ABL application archive file is created in
output/package-output:
- For
Sportssample application, verify that theSports.zipfile 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
- For