In my job as a software developer for SICK I recently worked on setting up a local development environment for the PLM system Aras Innovator in Docker. Before that we used virtual machines to setup a reproducable local development environment, but we had issues with performance and maintaining the virtual machines required a lot of work. The Docker images are much easier to maintain, run very performant and can be installed quickly for every developer in our team. I want to share my experience on setting up Aras Innovator in Docker with you.
Firstly I want to share my GitHub Repo. You can clone it and build your own Aras Innovator 12 SP9 Docker Image in minutes. There are just a couple of manual steps you need to execute to insert your license key and MAC address to be able to actually use it.
You can not only run Aras Innovator 12 but also Aras Innovator 11 and the latest Aras Innovator Release 19 in Docker. Even though according to Aras it is not possible to run Aras Innovator in Docker yet. You only need the right Aras Innovator Setup file and might need to install a different ASP.NET Core/.NET Core Runtime and Hosting Bundle version.
A list of steps to get you own Aras Innovator Docker container up and running:
- install Docker Desktop for Windows
- start Docker Desktop
- switch Docker Desktop to use Windows containers
- clone / download my GitHub repository aras-innovator-docker
- make sure to follow the steps in the README.md file to edit your MAC address and add your Aras Innovator license to the InnovatorServerConfig.xml file
- open a Terminal of your choice (e.g. PowerShell), navigate to the folder where you cloned the GitHub repository and execute the command ‘docker-compose up -d’
- after building the image your Aras Innovator environment will be available under http://localhost/Innovator
The most common issue occurs if the MAC address you specified does not match the license key you entered in the InnovatorServerConfig.xml. Also make sure that you use a license key that matches the Aras Innovator version, which in this case is 12 SP9.
Setting up a real development environment
If you are planning on developing you own Aras Innovator solutions inside a Docker container I would recommend to split up the webserver and SQL database into separate containers. This requires some additional steps that highly depend on your needs and level of customization. That is why I did not do this for the demo repository on GitHub. If you need help setting up something like this feel free to contact me.
Aras Installer parameters
If you inspect the Dockerfile you can see that the InnovatorSetup.msi is installed silently with msiexec.exe and a lot of parameters. I want to give a list of those parameters to you as this might help customizing the demo Dockerfile to your needs and maybe splitting it up into separate images for the webserver and SQL database as recommended above. There might be even more parameters that could be analyzed by using the Microsoft tool Orca.exe. Here is a list of potential parameters (and potential values as far as I know them) for the msiexec.exe:
- /i Location of installer | example value: C:\\Setup\\InnovatorSetup.msi
- /l Location of log file to be generated | example value: C:\\Setup\\InnovatorSetupLog.log
- INSTALLDIR Location to install Code Tree | example value: C:\\Innovator
- UPGRADEORINSTALL | example value: 1
- DB_CREATE_NEW_OR_USE_EXISTING use ‘0’ when you want the database to be created or ‘3’ if you want to use an existing database | example value: 0
- SMTPSERVER | example value: queue
- WEBALIAS Web Alias for IIS | example value: Innovator
- VAULTNAME | example value: InnovatorDb
- VAULTFOLDER Location of the physical vault | example value: C:\\Innovator\\Vault
- IS_SQLSERVER_SERVER Database Server Name | example value: mysqlservername
- IS_SQLSERVER_DATABASE Name of Database to be created | example value: InnovatorDb
- IS_SQLSERVER_AUTHENTICATION | example value: 1
- IS_SQLSERVER_USERNAME Recommended to use ‘SA’, Login for SQL Server to create DB | example value: sa
- IS_SQLSERVER_PASSWORD Password for the User above (default ‘innovator’ for ‘sa’) | example value: YRQsxj*7i!NQdk
- SQL_SERVER_LOGIN_NAME Database owner login name (recommended to use ‘innovator’) | example value: innovator
- SQL_SERVER_LOGIN_PASSWORD Password for the User above (default ‘innovator’ for ‘innovator’ | example value: YRQsxj*7i!NQdk
- SQL_SERVER_LOGIN_REGULAR_NAME | example value: innovator_regular
- SQL_SERVER_LOGIN_REGULAR_PASSWORD | example value: YRQsxj*7i!NQdk
- INSTALL_CONVERSION_SERVER | example value: 1
- CONVERSION_SERVER_NAME | example value: ConversionServer
- CONVERSION_SERVER_APP_URL | example value: http://localhost/Innovator/Server/InnovatorServer.aspx
- INSTALL_AGENT_SERVICE | example value: 1
- ARAS_AGENTSERVICE_TO_INNOVATORSERVER_URL | example value: http://localhost/Innovator/Server/InnovatorServer.aspx
- INNOVATOR_TO_SERVICE_ADDRESS | example value: http://localhost:8734/ArasInnovatorAgent
- AS_FOLDER | example value: ArasInnovatorAgent