InstallShield StandAlone Build with Docker
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 or Download the same from here
[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.e ISDockerBuild)
- 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.
Where:
CC-SERVER - Concurrent Server
CC-PORT - Concurrent Server Port
- 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"
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/
- Mark as Read
- Mark as New
- Permalink
- Email to a Friend
- Report Inappropriate Content
Hi,
I have two question here.
First can you provide an image with
mcr.microsoft.com/windows/servercore:1809
Second, i dont think the the install shield installation is working.
running IsCmdBld.exe inside the container does not generate any output.
however when i run the IsCmdBld.exe on my computer i get
InstallShield (R)
Release Builder
Copyright (C) 2019 Flexera Software, Inc.
and/or InstallShield Co. Inc.
All Rights Reserved.
---COMMAND LINE OPTIONS---
--REQUIRED--
-p <file name> project file name
--OPTIONAL--
-r <release name> name of the release
-b <build location> full path to the output folders and files
-s silent build
-i <.ini file path> full path to an .ini file
-u upgrade only
-x stop at first error
-w treat warnings as errors
-l <Path Variable>="New Path" override path variable location
-v enable verbose mode
-n don't compile setup.rul
-q2 WINDOWS INSTALLER PROJECTS: build tables and refresh files
PROFESSIONAL PROJECTS: rebuild only changes since the last build
-q3 only compile setup.rul
-d <Name>=<Value> provide a preprocessor definition
-o merge module search path
-prqpath InstallSheild Prerequisite search path
--WINDOWS INSTALLER PROJECTS--
-a <product configuration> name of the product configuration
-c <release configuration>
COMP = Files compressed into .msi file;
UNCOMP = Files remain uncompressed
-f <release flags>
-e <Y/N> include Setup.exe in the build
-y <Product Version> version number in the format xx.xx.xxxxx
-m <CUB file> name of the CUB file to use to validate the package
-q1 build tables only
-t Microsoft(R) .NET Framework path
-h skip upgrade validators
-g minimum target MSI version
-j minimum target Microsoft(R) .NET Framework version
-z <Property=Value> set Property to Value in built MSI
--WINDOWS INSTALLER PATCHES--
-patch_config <patch configuration> patch configuration name
For more information on command-line parameters, please see the Help Library.
which tells me the on inside the container is not responding
- Mark as Read
- Mark as New
- Permalink
- Email to a Friend
- Report Inappropriate Content
@adiallo ,did you get this working?The above mentioned errors clearly indicate that there is some command line syntax error.Sample command line would be:
IsCmdBld.exe -p "C:\InstallShield Projects\MyAppProject.ism" -r <Release_Name> -a <ProductConfig>