Veeery long building time inside Docker container

I just build by hand in shell, it takes about 3 mins. Wire that up to a new commit and the new build can be automatically done while you get coffee.

https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

thx for the tip (METEOR_DISABLE_OPTIMISTIC_CACHING) , will try that!

Edit: wow it actually cuts build time in half… seems silly that you have to set this variable explicitly, even the docs said that this is a sane default for meteor build Environment Variables | Meteor API Docs

1 Like

Yes, but by my tests, the difference is only in Docker. On host computer, there is not difference or very low (lower than 5%).

We have a GitHub CI and this vars:

DISABLE_CLIENT_STATS=true METEOR_DISABLE_OPTIMISTIC_CACHING=1 TOOL_NODE_FLAGS=--max-old-space-size=4096 meteor build --architecture=os.linux.x86_64 --server-only ./build

You can try to increase --max-old-space-size

Another useful article Optimizing CI for Meteor thanks @zodern

2 Likes

Build on your local machine and link the files to docker on a shared dir bro, it will fly like a bird on high

2 Likes

@truedon Hi Bro, I will try, how that bird will be flying :grin::grin::grin::raised_hand_with_fingers_splayed:

Newbie question:

I’m building for Meteor-desktop (Electron), can I use this as well to speed up the build time for my Electron app?

I wanted to try building the app for desktop and mobile, but for desktop I haven’t found any procedure how to do it yet and buildin for Android uses old SDK version, so I can’t upload the app to Google Play :frowning: If you could help me with that, we can try it on my app to see if there will be a difference in the length of the build. But as I wrote, it only affects in Docker, outside of Docker it has minimal effect. I think it’s probably due to file manipulation, but I can’t confirm this definitively yet because I don’t have experience with benchmarking in Linux. But I would like to try it out. If you know or have experience with any benchmark tool for file system and file manipulation, in linux I would appreciate any information in this regard.

@klaucode - check out this repo: GitHub - Meteor-Community-Packages/meteor-desktop: Build a Meteor's desktop client with hot code push.

I’d suggest you maybe start of with the ToDo app first before you try to switch your app to Electron. But building a Windows/macOS/Linux app from the same code base is really an advantage.

The alternative to that is Ionic which uses the latest Electron version (AFAIK) whereas the Meteor Desktop package is very far behind (using Electron 11.5) where Electron has just released version 21 (see Electron's blog | Electron):

Electron 21.0.0 has been released! It includes upgrades to Chromium 106 , V8 10.6 , and Node.js 16.16.0