Automated installer build using docker

Got a problem you cannot solve? Try here.
bdlbcc
Posts: 8
Joined: Mon Feb 05, 2024 12:55 pm

Re: Automated installer build using docker

Postby bdlbcc » Mon Apr 08, 2024 3:57 pm

Thanks. I got this working but there is a big issue with the size.

Even though the image creates successfully, and behaves as expected it is WAY too large for a typical CI/DI Pipeline (58.5 GB). The base Windows Server Core 2022 LTSC is only ~3 GB. The only other tools installed are Git and 7-zip, plus some small plugins. Everything else is (must be) Installaware.

Since a complete new image must be spun up many times a day in a modern CI/DI pipeline, this is not acceptable.

I'm using the web installer, which I delete afterwards, to minimize the impact of that. But there are many other dependencies that are apparently installed but we don't need. E.g., I see SQL server 2012 dependencies, things like that.

Need to get the size down to at most ~10 GB, preferably MUCH less. Windows containers are inherently larger than Linux, but ~60 GB...?

Please advize.

JohnGaver
Posts: 81
Joined: Mon Feb 05, 2024 6:15 pm

Re: Automated installer build using docker

Postby JohnGaver » Mon Apr 08, 2024 7:29 pm

That's a fair question. If you're confident you don't need all those runtimes, just delete them!

21.6 GB is the full size of my fully-installed InstallAware X16 folder though.

I'm honestly not sure why your container grew so large. It is clear Docker doesn't support many low-level optimizations performed by InstallAware to accelerate the setup process.

Since web builds cache their sources, I'd double the IA folder size for good measure, under the assumption that Docker just cannot handle hard links to files. At 43.2 GB, that still falls rather short of the total you indicated by roughly 15 GB!

In view of the preceding, you could also delete the setup cache. In the latest version, that would be located here:

Code: Select all

C:\ProgramData\{01ACFF75-7A48-4BE3-BB24-BCABC6C802FE}


Just delete each subfolder found inside the folder above. That'll leave the maintenance tool and installation logs intact (although, you'd hardly need them for maintenance operations inside a container, I suppose).

Does Docker compact an image (or are tools available for doing that) after deletions have taken place?

If not, we may need to discuss other strategies. Our automation interface invoked from a custom application comes to mind, for instance - you'd just copy over a few DLLs, and be done with it (in addition to building the app invoking them, of course [and assuming your software edition includes this entitlement])!

Hopefully those ideas help.
John Gaver
InstallAware Skunkworks
InstallAware Multi Platform - Liberating DEB/RPM/PKG/MSI(X) into universal native setups!
Get your free copy today - https://www.installaware.com/installaware-multi-platform.htm


Return to “Technical Support”

Who is online

Users browsing this forum: Baidu [Spider] and 13 guests