Talha Masood (Progress Software) asked a question.

Use the Container Image for PAS for OpenEdge 13.0.x, 12.8.x & 12.2.x with a Sample Application

Use the Container Image for PAS for OpenEdge 13.0.x, 12.8.x & 12.2.x with a Sample Application

Requirements:

  • Docker environment
  • Docker Compose
  • A valid progress.cfg file
  • OpenEdge 13.0.x, 12.8.x & 12.2.x Environment
  • Scripts to deploy Progress Application Server for OpenEdge Container. (Attached)

Note: For the deployment, we are using service port 8811(sample-app), 9200(elasticsearch), 5601(kibana) and 8080(web-ui). These ports should be available.

 

See FAQ wiki for additional info: https://community.progress.com/s/question/0D54Q0000AHmWugSQF/docker-container-for-pasoe-faq

 

Use the Container Image

 

1. Start a database server if you don't have a running database server. Below is an example

  • Create a copy of the sports2000 database and start the database server (broker)
    • prodb sports sports2000
    • proserve sports -S <DB_PORT>

2. Build the Sports sample app:

  • cd Sports
  • For connecting to the database, update the ./conf/startup.pf file with the below content and substituting the required field.
    • -db sports -H <IP_ADDRESS_OF_DB_HOST> -S <DB_PORT>
  • In an openedge environment, run the below command
    • ant package
    • Note: A Sports.zip file is generated in ./output/package-output
  • Change the working directory to the parent to follow further steps
    • cd ..

3. Start the Elasticsearch, Kibana and web-ui service

4. Deploy the sample app in PASOE

  • Download the PASOE image zip from Electronic Software Distribution (ESD) and unzip it to a folder say pasoe-sample-app. For more details, refer https://docs.progress.com/bundle/pas-for-openedge-docker/
  • Change the directory
    • cd pasoe-sample-app
  • Copy the Sports.zip generated from Step 2 to ./deploy/ablapps
    • cp ../Sports/output/package-output/Sports.zip ./deploy/ablapps/
  • Copy the config.properties from sample app to ./deploy/config.properties
    • cp ../config.properties ./deploy/config.properties
  • Update the value for HOST in ../fluentbit/conf/fluent-bit-output.conf to point to your Elasticsearch host.
  • Copy the Fluent Bit config from sample app to push the logs to Elasticsearch
    • cp ../fluentbit/conf/fluent-bit-output.conf ./deploy/conf/logging/
  • Copy the license file progress.cfg to ./deploy/license
  • If you want to change the database during deployment, you can do this by updating the ./deploy/conf/runtime.properties with the below content and substituting the required field. If localhost is used in Step 2 for connecting to the database, please update the ./deploy/conf/runtime.properties to point to the IP_ADDRESS_OF_DB_HOST.
    • Sports.DB.CONNECTION.PARAMS=-db sports -H <IP_ADDRESS_OF_DB_HOST> -S <DB_PORT>
  • Deploy the sample app
    • ant -f ./deploy/build.xml deploy

5. Access the PAS for OpenEdge instance via a web browser:

6. Access the web-ui service via a web browser:

7. Access Elasticsearch to check on available logs

8. Access Kibana

  • http://<docker-host-machine>:5601
  • Notes:
    • Select Management/Index Management to see the indices in Elasticsearch.A index named as pasoe-container-logs should be present.
  • Select Management/Index Pattern to create an index for Kibana:
  • Create index patterns as 'pasoe_container*'
    • Specify @timestamp to filter data by time
  • Select Discover to see pasoe logs. You can search logs for logtype:
    • pasoe_agent_log, pasoe_application_log, pasoe_localhost_log, pasoe_localhost_access_log, start_server_log and etc.

9. Stop the running services

  • Stop Elasticsearch, Kibana, and web-ui
    • docker-compose -f ../docker-compose.yaml down
  • Stop deployed sample app
    • ant -f ./deploy/build.xml undeploy

 

NOTE: Update OE version in the build.xml and config.properties file in the deployScripts.zip.(13.0.x, 12.8.x & 12.2.x)


  • Carl Verbiest (CCE NV)

    @Talha Masood (Progress Software)​ I found this application when looking for a docker-compos.yaml example for the OpenEdge database.

    but this uses docker compose only for the ELK stack.

     

    Is there a reason the database and pasoe are not included in that docker-compose.yaml ?

  • Talha Masood (Progress Software)

    Hi @Carl Verbiest (CCE NV)​,

     

    Progress provides the Docker image for the base PASOE server. However, to deploy a business application, several steps are required, including (but not limited to):

    1) Compiling application code and creating deployable artifacts

    2) Deploying the application in PASOE

    3) Configuring PASOE with appropriate settings such as databases, limits, and propath

    4) Monitoring the application for metrics and logs

    5) ...

    The purpose of this sample application is to demonstrate how these activities can be performed. Sample scripts and configuration files are included in the archive available for download from ESD. Specifically, the docker-compose.yaml file is tailored for starting services required for capturing logs. The creation and starting of the PASOE image are handled by the supplied scripts in the archive. These steps illustrate one of the methods to deploy your application on the PASOE image. The aim is to make users aware of the necessary steps to deploy an application on a Docker image. You can follow these steps or customize your own based on your deployment needs.

    Let me know if you have any further questions or need clarification!

     

    Thanks,

    Talha