Ok. If you need help, let me know as I have a little bit of experience with this. The devil is in the details and I removed a lot of details below, but conceptually this is what I’m recommending at a high level:
- Create a Dockerfile to generate a Docker image that contains Software AG Update Manager pre-installed. For example, this Dockerfile command downloads the Update Manager bootstrapper and installs SUM in RedHat (9.2-minimal image):
# Download the Software AG Update Manager bootstrapper and install Update Manager
RUN curl -s -o /tmp/sum-installer.bin https://empowersdc.softwareag.com/ccinstallers/SoftwareAGUpdateManagerInstaller20230322-11-LinuxX86.bin \
&& chmod +x /tmp/sum-installer.bin \
&& microdnf install -y gzip tar \
&& /tmp/sum-installer.bin --accept-license -d /opt/softwareag-sum
- In this same Dockerfile, copy a shell script into the image that launches SUM to installs fixes from a given image file and a given SUM script. For example, a script named update.sh that executes a command like the one below:
/opt/softwareag-sum/bin/UpdateManagerCMD.sh -installFromImage /tmp/sum-image.zip -installDir /opt/softwareag -readScript /tmp/sum-script.txt
- Now, to install fixes for Software AG products inside an existing Docker image, you could create a Dockerfile that uses a multi-stage build as follows:
FROM your-wm-product-image AS base
FROM sum-image AS sum
# Copy the Software AG product files from base
COPY --from=base /opt/softwareag /opt/softwareag
# Copy the SUM script and image into the container
COPY ./sum-files/sum-image.zip /tmp
COPY ./sum-files/sum-script.txt /tmp
# Run the update script to install the fixes from the image based on the script
RUN /some/location/update.sh
# Copy the resulting product directory
FROM your-pristine-OS-image
COPY --chown=sagadmin:sagadmin --from=install /opt/softwareag /opt/softwareag
Like I said, the devil is in the details and there are multiple ways to skin this cat, but hopefully this gives you some direction.
Also, I hope you realize that you can apply this same concept for creating your Docker images from scratch, but rather than exectuing Update Manager, you’d execute the Software AG installer. In fact, in my current project, I have a single image called install that has both the installer and update manager. Inside that image, I have a single script called install.sh that takes care of first calling Installer and then calling Update Manager. I have gone back and forth on whether I like this approach better or having separate images for each but there is merit to both approaches.
HTH,
Percio
#Integration-Server-and-ESB#webMethods