InstallShield Standalone Build with Docker
Build your own Docker Image with InstallShield SAB
- On a machine where Docker is installed, create Folder (eg: ISDockerBuild).
- Copy InstallShield SAB installer (eg: InstallShield2019R3StandaloneBuild.exe) to the above created folder (i.e ISDockerBuild).
- Create a file called DockerFile (no extension) inside the above created folder (i.e ISDockerBuild) with the following content.
[Dockerfile]
# Base Windows Image
FROM mcr.microsoft.com/windows:1809
# Change to Root Dir
WORKDIR /
# Copy InstallShield installer to root
ADD InstallShield2019R3StandaloneBuild.exe /
# InstallShield installation
RUN InstallShield2019R3StandaloneBuild.exe /s /v"INSTALLLEVEL=101 SABCONTAINER=1 /qn"
The final folder should look like this:
- Launch CMD (Run As Administrator), and navigate to the above created folder (i.eISDockerBuild)
- Run the following command to build the Docker image with InstallShield installed:
docker build -t installshield-sab-2019r3 --no-cache=true .
- Wait for the build to complete. Once the build is complete run the following command to list the newly created image
docker images
License InstallShield SAB
Activate a Node Locked License
For activating SAB using a node locked license, you need to manually copy the license file (license.lic) to InstallShield [INSTALLDIR] location: usually C:\Program Files (x86)\InstallShield\<IS-VERSION>\System\
It is also mandatory to create the container with --mac-address option, else the MAC/Physical address will be dynamic each time you create a new container.
- Open the license file that you want to use for activating InstallShield SAB and copy the MAC address.
-
Use the same/copied MAC/Physical address to create the container using --mac-address
docker run --mac-address <MAC-ADDRESS> <IMAGE> <CMD>
(Optional) In case if you want to create container, mount folder and assign MAC address at the same time run the following command:
docker run --mac-address <MAC-ADDRESS> -v "<HOST-DIR>:<CONTAINER-DIR>" <IMAGE> <CMD>
Where:
MAC-ADDRESS : is separated by colon( : ), eg: 00:16:7F:51:03:7D
HOST-DIR : folder present in Physical machine/VM
CONTAINER-DIR : folder inside the container; if the folder does not exists it will be automatically create it.
- The container should be in Exited state in order to copy files to a container. Run the following command to Stop the container:
docker stop <CONTAINER-ID/CONTAINER-NAME>
- After the container is stopped, run the following command to copy the license file (i.e license.lic) to docker container.
"docker cp license.lic <CONTAINER-ID/CONTAINER-NAME>:C:\Program Files (x86)\InstallShield\<IS-VERSION>\System\"
- After the license file copy is done, run the following command to Restart the container:
docker start <CONTAINER-ID/CONTAINER-NAME>
Activate a Concurrent License
- Download ini from here.
- Open and edit ini with your concurrent server details.
If you are configured with FlexNet License server , then specify the "Server" with the server IP and port information and remove the "CLSServer" from the server.ini file.
Or
If you got Cloud License Server (CLS) ID from Revenera, then configure the "CLSServer" with the Cloud License Server (CLS) ID and remove the "Server" from the server.ini file.
For FlexNet License server:
CC-SERVER - Concurrent Server
CC-PORT - Concurrent Server Port
For Cloud License Server:
CLSServer = XXXXXXXXXX - where XXXXXXXXX is the CLS Server ID you got from Revenera
- Copy ini to InstallShield [INSTALLDIR] location, Usually C:\Program Files (x86)\InstallShield\<IS-VERSION>\System\
- If the container is running, you need to stop the container. Run the following command to Stop the container:
docker stop <CONTAINER-ID/CONTAINER-NAME>
- After the container is stopped, run the following command to copy ini file to docker container.
docker cp server.ini <CONTAINER-ID/CONTAINER-NAME:C:\Program Files (x86)\InstallShield\<IS-VERSION>\System\
- After ini file copy is done successfully, run the following command to Restart the container:
docker start <CONTAINER-ID/CONTAINER-NAME>
Downloading a Docker image with pre-installed Standalone Build
You can download a docker image with pre-installed InstallShield 2019 R3 Standalone build.
docker pull flexerasoftware/installshield:sab2019r3
NOTE: By choosing to download the above docker image, you agree to accept the terms and conditions outlined in our End User License Agreement available at https://www.flexera.com/legal/clickthrough
Building InstallShield projects via Docker Container
Considering that you already have a Docker image with InstallShield or you are using the Docker image provided by InstallShield.
- Run the following command to create a container and mount directory in an interactive process
docker run -it -v "<HOST-DIR>:<CONTAINER-DIR>" <IMAGE> <CMD>
(Optional) In case if you want to create container, mount folder and assign MAC address at the same time run the following command:
docker run -it --mac-address <MAC-ADDRESS> -v "<HOST-DIR>:<CONTAINER-DIR>" <IMAGE> <CMD>
Where:
MAC-ADDRESS : is separated by colon( : ), eg: 00:16:7F:51:03:7D
HOST-DIR : folder present in Physical machine/VM
CONTAINER-DIR : folder inside the container; if the folder does not exists it will be automatically create it.
- To license InstallShield SAB please refer here.
- Navigate to C:\Program Files (x86)\InstallShield\2019 SAB\System
- Run the following command to build your project:
IsCmdBld.exe -p "C:\InstallShield Projects\MyAppProject.ism"
Build Windows Server Core Docker Image with InstallShield SAB
InstallShield SAB setup can be installed on the Windows server core image, but we noticed that the InstallScript projects faili to build in the Windows server core image due to the missing Microsoft Windows library - Oledlg.dll. Server Core provides you with a minimal installation of Windows Server, with minimal features and supports only certain server roles. Oledlg.dll is not included with the Server core installation. Since InstallScript heavily relies on this library, building an InstallScript project fails with below error:
ISDEV : error -7041: Could not create instance of CABEngine, CABEngine component might not be installed or registered properly. You may need to reinstall InstallShield.
So, in order to build the InstallShield projects in the Server core image, copy theOledlg.dll from a Windows Server full installation to the Windows Server Core, once after preparing the Windows server core image with InstallShield SAB setup as described in the starting of this article. Copy the 32 bit Oledlg.dll from a Windows Server full installation(from C:\Windows\SysWOW64 directory) to Windows server core (C:\Windows\SysWOW64) directory.
Reference
Apart from the OleDlg.dll copy, ensure to specify the Windows Server Core base image in the Docker file while creating the image as below:
[Dockerfile]
# Base Windows server core Image
FROM mcr.microsoft.com/windows/servercore:20H2
# Change to Root Dir
WORKDIR /
# Copy InstallShield installer to root
ADD InstallShield2019R3StandaloneBuild.exe /
# InstallShield installation
RUN InstallShield2019R3StandaloneBuild.exe /s /v"INSTALLLEVEL=101 SABCONTAINER=1 /qn"
NOTE: Please refer the following for addition details on the commands used:
- Docker build: https://docs.docker.com/engine/reference/commandline/build/
- Docker images: https://docs.docker.com/engine/reference/commandline/images/
- Docker start: https://docs.docker.com/engine/reference/commandline/start/
- Docker stop: https://docs.docker.com/engine/reference/commandline/stop/
- Docker cp: https://docs.docker.com/engine/reference/commandline/cp/
- Docker run: https://docs.docker.com/engine/reference/run/
Related Articles
InstallShield Standalone Build (Node-Locked) License 10Number of Views InstallShield Standalone Build: Parameters to Automate the Registration Process 7Number of Views The InstallShield Standalone Build (SAB) in a Docker Container with a Cloud License Server (CLS) Build Fails with Build Er… 9Number of Views Install InstallShield Standalone Build and Obtain a Node-Locked License File 3Number of Views How to Activate the InstallShield Standalone Build (SAB) using a Cloud License Server (CLS) ID inside a Docker Container a… 40Number of Views
Hi, I am Reva - Ask me anything.
No new updates
Thanks for the feedback!
Your feedback has been saved.Rate this response:
Add Additional feedback ( Optional )
Are you sure you want to cancel
the case creation?
Are you sure you want to cancel the case creation?
Are you sure you want to close this case
| Products | Region | Phone Numbers |
|---|---|---|
| FlexNet Operations FlexNet Embedded FlexNet Publisher FlexNet Connect FlexNet Code Insight InstallAnywhere InstallShield |
North America * |
+1 630-332-2513 (toll) +1 877-279-2853 (toll-free in North America) |
| Europe * |
+44 1925 944367 (toll) +44 800 047 8642 (toll-free in Europe) |
|
| Japan * | +81 3-4540-5335 (select option 2) | |
| Australia * |
+61 3 9895 2177 +61 1800 560 603 (toll-free in Australia) |
|
|
Usage Intelligence (formerly
Revulytics) Compliance Intelligence |
Please use the Case Portal to submit your support ticket or reach out to your Revenera contact. | |
Case id: 00001065
Activity: Status change: 2 hours ago