EMBER_CLI_PROD_ASSETS auf 1 setzt Assets beim Vorabkompilieren zurück

Nur für das Protokoll, und ob es für jemanden nützlich ist. Es gibt mindestens eine Möglichkeit, ember cli wie erwartet mit einer zufälligen UID zum Laufen zu bringen, und zwar dadurch, dass sichergestellt wird, dass die zugewiesene zufällige UID einen Eintrag unter /etc/passwd hat, wenn der Vorgang rake assets:precompile ausgeführt wird.

So etwas wie:

if [ `id -u` -ge 10000 ]; then
  cat /etc/passwd | sed -e "s/^discourse:/builder:/" > /tmp/passwd
  echo "discourse:x:`id -u`:`id -g`:,,,:/home/discourse:/bin/bash" >> /tmp/passwd
  cat /tmp/passwd > /etc/passwd
  rm /tmp/passwd
fi

Somit wird der Befehl app/assets/javascripts/discourse run ember build -prod (aus discourse/assets.rake at tests-passed · discourse/discourse · GitHub) dies bewirken.

yarn run v1.22.17
$ /discourse/app/assets/javascripts/node_modules/.bin/ember build -prod
WARNING: Node v16.13.2 is not tested against Ember CLI on your platform. We recommend that you use the most-recent "Active LTS" version of Node.js. See https://git.io/v7S5n for details.
DEPRECATION: The integration of jQuery into Ember has been deprecated and will be removed with Ember 4.0. You can either opt-out of using jQuery, or install the `@ember/jquery` addon to provide the jQuery integration. Please consult the deprecation guide for further details: https://emberjs.com/deprecations/v3.x#toc_jquery-apis
- Building
Environment: production
- Building
- building...
[WARN] (broccoli-terser-sourcemap) Minifying "assets/chunk.529.6ee9018498e97f872147.js" took: 24288ms (more than 20,000ms)
...

Mir ist auch aufgefallen, dass dieser Vorgang ziemlich teuer ist und fast 2 GB RAM nur für die Vorabkompilierung verbraucht :scream:

Cheers,
Ismael