EMBER_CLI_PROD_ASSETS إلى 1 يعطل تجميع الأصول مسبقًا

مثير للاهتمام، هذا ما أحصل عليه عند تنفيذ اقتراحك (وهو منطقي تمامًا إذا كان الهدف هو الوصول إلى أي نظام مكتبات داخلي بمستخدم عشوائي غير الجذر):

node
Welcome to Node.js v16.13.2.
Type ".help" for more information.

> const os = require('os');
undefined

> os.userInfo().shell
Uncaught:
SystemError [ERR_SYSTEM_ERROR]: A system error occurred: uv_os_get_passwd returned ENOENT (no such file or directory)
    at __node_internal_captureLargerStackTrace (node:internal/errors:464:5)
    at new SystemError (node:internal/errors:233:5)
    at new NodeError (node:internal/errors:336:7)
    at Object.userInfo (node:os:347:11) {
  code: 'ERR_SYSTEM_ERROR',
  info: {
    errno: -2,
    code: 'ENOENT',
    message: 'no such file or directory',
    syscall: 'uv_os_get_passwd'
  },
  errno: [Getter/Setter: -2],
  syscall: [Getter/Setter: 'uv_os_get_passwd']
}

>

كيف تقوم بتشغيل صورة Discourse بالضبط؟ هل هناك أي علامات إضافية للأمان؟

لقد كنا نستخدم حلاً حاويًا يعتمد على OpenShift، حيث يعمل Discourse بمعرف مستخدم عشوائي. لا توجد مشاكل حتى الآن، والنهج مشابه جدًا لدليل التثبيت الرسمي.
من المؤكد أنه يمكننا تجاوز هذه المشكلة عن طريق تعيين EMBER_CLI_PROD_ASSETS إلى 0، ويتم تجميع الأصول مسبقًا كما في الأيام الخوالي، ولكن عاجلاً أم آجلاً، إذا كانت خططك هي التحرك في هذا الاتجاه، فقد تشكل مشكلة حقيقية لمثل هذه الحلول إذا تم التخلي عن عملية التجميع المسبق الحالية.

لذا هناك بعض الأسئلة هنا:

  • هل لديك موعد تقديري للتخلي (إذا كان الأمر كذلك) عن تجميع الأصول مسبقًا بالطريقة القديمة؟
  • هل هناك أي طريقة للوصول إلى آليات os بطريقة مختلفة، أو التفكير في نهج مختلف، بحيث لا تزال الحلول الحاوية ذات معرفات المستخدم العشوائية تعمل؟

شكراً جزيلاً على النظر في هذا الأمر، أقدر ذلك كثيراً.

تحياتي،
إسماعيل

إعجاب واحد (1)