This repository contains Dockerfiles and tooling to build local OpenEdge Docker container images using locally provided installers. Focused on DevContainer workflows for modern OpenEdge development.
Before running the quickstart script, ensure you have the following:
- Windows: Docker Desktop for Windows
- Linux: Docker Engine or Docker Desktop for Linux
- macOS: Docker Desktop for Mac
Verify Docker is running:
docker --version
docker ps
⚠️ Important for Mac Users with Apple M Processors (Apple Silicon):Set the following environment variable to ensure Linux/AMD64 images are built instead of ARM64:
export DOCKER_DEFAULT_PLATFORM=linux/amd64Add this to your shell profile (
.bashrc,.zshrc, etc.) to make it permanent:echo 'export DOCKER_DEFAULT_PLATFORM=linux/amd64' >> ~/.zshrc # For zsh echo 'export DOCKER_DEFAULT_PLATFORM=linux/amd64' >> ~/.bashrc # For bash
Clone the OpenEdge Docker repository to your local machine:
git clone https://github.com/rwdroge/oe_docker.git
cd oe_dockerDownload your OpenEdge license addendum file (Click on the OpenEdge version i.e. Progress OpenEdge 12.8.x, select the specific update i.e. Progress® OpenEdge® 12.8.9 (all platforms) and choose 'View License' and then 'Download' the Linux 64-bit only!) from Progress ESD and place it in the addendum/ folder:
For OpenEdge 12.8.x:
addendum/
├── your_12.8_license_addendum.txt ← Your license file here
└── license_addendum_placeholder.txt
For OpenEdge 12.2.x:
addendum/
├── your_12.2_license_addendum.txt ← Your license file here
└── license_addendum_placeholder.txt
📝 Note: The quickstart script will help you generate
response.inifiles from your license addendum.
Download your OpenEdge installer files from Progress ESD and place them in the binaries/oe/<version>/ folder:
Single installer example (12.8.9):
binaries/oe/12.8/
└── PROGRESS_OE_12.8.9_LNX_64.tar.gz
Base + incremental installer example (12.8.6):
binaries/oe/12.8/
├── PROGRESS_OE_12.8_LNX_64.tar.gz ← Base installer (12.8.0)
└── PROGRESS_OE_12.8.6_LNX_64.tar.gz ← Update installer (12.8.6)
⚠️ Important for 12.2.17-12.2.18 and 12.8.4 - 12.8.8: You must place both the base installer (12.2.0/12.8.0) and the update installer in the same directory for incremental installations.
Once you have the prerequisites ready, simply run the quickstart script:
Windows:
.\oe_container_build_quickstart.ps1Linux/macOS:
./oe_container_build_quickstart.shThe script will:
- Ask for your Docker Hub username (optional - leave empty for local images)
- Present an interactive menu with build options
- Validate all prerequisites before starting
- Generate response.ini files from your license (if needed)
- Build the requested Docker images
✅ Validation: The quickstart script automatically validates that all required files exist before starting any build process.
🔑 Docker Username (Optional):
- Leave empty to create local images (e.g.,
oe_compiler:12.8.6,oe_db_adv:12.8.6)- Provide username to create tagged images (e.g.,
your-username/oe_compiler:12.8.6)
This repository builds the following OpenEdge container images:
compiler- OpenEdge compiler and development toolspas_dev- PASOE development instance with volumes for source code and librariesdb_adv- OpenEdge database server (Advanced Enterprise Edition)
devcontainer- Development container (requires: compiler)sports2020_db- Sports2020 demo database (requires: db_adv)
The images built from this repository can be used with the OpenEdge development container setups available at:
https://github.com/rwdroge/oedevcontainer
This provides a complete containerized OpenEdge development environment with VS Code integration.
For advanced users who prefer command-line automation over the interactive quickstart script.
📝 Note: The
-DockerUsername(PowerShell) or-u(bash) parameter is optional. Omit it to create local images without a username prefix.
Generate response.ini files only:
# Windows
.\oe_container_build_quickstart.ps1 -Action generate -Version 12.8.9 -Batch
# Linux/macOS
./oe_container_build_quickstart.sh -a generate -v 12.8.9 -bBuild specific components:
# Windows - Local images (no username)
.\oe_container_build_quickstart.ps1 -Action build -Version 12.8.9 -Component compiler -Batch
# Windows - Tagged images (with username)
.\oe_container_build_quickstart.ps1 -Action build -Version 12.8.9 -DockerUsername your-username -Component compiler -Batch
# Linux/macOS - Local images
./oe_container_build_quickstart.sh -a build -v 12.8.9 -c compiler -b
# Linux/macOS - Tagged images
./oe_container_build_quickstart.sh -a build -v 12.8.9 -u your-username -c compiler -bBuild all DevContainer images:
# Windows - Local images
.\oe_container_build_quickstart.ps1 -Action build -Version 12.8.9 -Component all -Batch
# Windows - Tagged images
.\oe_container_build_quickstart.ps1 -Action build -Version 12.8.9 -DockerUsername your-username -Component all -Batch
# Linux/macOS - Local images
./oe_container_build_quickstart.sh -a build -v 12.8.9 -c all -b
# Linux/macOS - Tagged images
./oe_container_build_quickstart.sh -a build -v 12.8.9 -u your-username -c all -bGenerate and build in one command:
# Windows - Local images
.\oe_container_build_quickstart.ps1 -Action both -Version 12.8.9 -Component all -Batch
# Windows - Tagged images
.\oe_container_build_quickstart.ps1 -Action both -Version 12.8.9 -DockerUsername your-username -Component all -Batch
# Linux/macOS - Local images
./oe_container_build_quickstart.sh -a both -v 12.8.9 -c all -b
# Linux/macOS - Tagged images
./oe_container_build_quickstart.sh -a both -v 12.8.9 -u your-username -c all -bGenerate response.ini files only:
# Windows
.\tools\Generate-ResponseIni.ps1 -Version 12.8.9
# Linux/macOS
./tools/generate-response-ini.sh -v 12.8.9Build specific images:
# Windows - Local image
.\tools\build-image.ps1 -Component compiler -Version 12.8.9
# Windows - Tagged image
.\tools\build-image.ps1 -Component compiler -Version 12.8.9 -DockerUsername your-username
# Linux/macOS - Local image
./tools/build-image.sh -c compiler -v 12.8.9
# Linux/macOS - Tagged image
./tools/build-image.sh -c compiler -v 12.8.9 -u your-usernameBuild all images:
# Windows - Local images
.\tools\build-all-images.ps1 -Version 12.8.9
# Windows - Tagged images
.\tools\build-all-images.ps1 -Version 12.8.9 -DockerUsername your-username
# Linux/macOS - Local images
./tools/build-all-images.sh -v 12.8.9
# Linux/macOS - Tagged images
./tools/build-all-images.sh -v 12.8.9 -u your-username- Base Images:
compiler,pas_dev,db_adv(can be built independently) - Dependent Images:
devcontainer(requires compiler),sports2020-db(requires db_adv) - All DevContainer Images: Use
allto build: compiler, pas_dev, db_adv, devcontainer, sports2020-db
📖 For detailed documentation: See tools/README_Generate-ResponseIni.md
🍎 Mac with Apple M Processors (Apple Silicon)
- Problem: Images built for ARM64 instead of AMD64
- Solution: Set the platform environment variable:
export DOCKER_DEFAULT_PLATFORM=linux/amd64
📄 License Issues
- Problem: "Could not extract company name from license file"
- Solution: Ensure you downloaded the correct Linux 64-bit license addendum from Progress ESD
This project was inspired by the OpenEdge and Docker work of Bronco Oostermeijer. Many thanks for the pioneering efforts in containerizing OpenEdge!