cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

InstallShield StandAlone Build with Docker

InstallShield StandAlone Build with Docker

InstallShield StandAlone Build with Docker

Build your own Docker Image with InstallShield SAB 

  1. On a machine where Docker is installed, create Folder (eg: ISDockerBuild).
  2. Copy InstallShield SAB installer (eg: InstallShield2019R3StandaloneBuild.exe) to the above created folder (i.e ISDockerBuild).
  3. 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:

Pic1.png

 

 

  1. Launch CMD (Run As Administrator), and navigate to the above created folder (i.e ISDockerBuild)
  2. Run the following command to build the Docker image with InstallShield installed:
docker build -t installshield-sab-2019r3 --no-cache=true .
  1. Wait for the build to complete. Once the build is complete run the following command to list the newly created image
docker images

img.png

 

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.

  1. Open the license file that you want to use for activating InstallShield SAB and copy the MAC address.

Pic3.png 

 

 

 

 

  1. 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.
  1. 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>
  1. 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\"
  1. 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

  1. Download ini from here.
  2. Open and edit ini with your concurrent server details.
Where:
CC-SERVER - Concurrent Server
CC-PORT - Concurrent Server Port
  1. Copy ini to InstallShield [INSTALLDIR] location, Usually C:\Program Files (x86)\InstallShield\<IS-VERSION>\System\
  2. 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>
  1. 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\
  1. 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.

  1. 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.
  1. To license InstallShield SAB please refer here.
  2. Navigate to C:\Program Files (x86)\InstallShield\2019 SAB\System
  3. 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/

Labels (1)
Was this article helpful? Yes No
No ratings
Comments

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

@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> 

 

Version history
Revision #:
22 of 22
Last update:
‎Jul 14, 2020 11:45 AM
Updated by:
 
Contributors