
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
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
- Update the value for serviceURI in webui/grid.js to point to your Docker host.
- Increase virtual memory settings to run Elasticsearch:
- sudo sysctl -w vm.max_map_count=262144
- For additional info: https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
- Start the services
- docker-compose up -d
- Check the status of Elasticsearch via a web browser. Elasticsearch may take some time to start.
- Check the Elasticsearch starts:
- docker-compose logs -f elasticsearch
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:
- https://<docker-host-machine>:8811/
- https://<docker-host-machine>:8811/Sports/
- https://<docker-host-machine>:8811/Sports/static/SportsService.json
- https://<docker-host-machine>:8811/Sports/rest/SportsService/Customer
- Note: By default, the PAS for OpenEdge instance will use HTTPS with a test certificate. You will need to accept access with this certificate.
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)
@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 ?
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