Most plugins carry all the code they need and have a simple install. Those two you tried to use need to fetch gems (libraries) from the internet to able to function.
do you know where in the code those ruby gem fetches for plugins happen? I tried looking for it but haven’t found the right place yet.
I’m thinking maybe instead of using cached gems maybe it would be more elegant to run a rubygems mirror on the isolated host, i found a tutorial here and it looks like you can configure extra system-wide gem sources
Our internal Discourse has happily been running the same old version for a good long while now, but we are finally getting rid of IE9 so it’s way overdue for an upgrade.
I can report that this guide is still good with the latest versions of Discourse. Even with RHEL8 instead of 7 
While experimenting I figured out a way to get those discourse-prometheus and discourse-calendar plugins working offline too even with the extra dependencies, the trick was to fish out the ruby gems from the plugin directory of the build server as well as the ones in /var/www/discourse/vendor/bundle/ruby
docker run -it -v ~/local/rubygems.org:/local-rubygems local_discourse/app /bin/bash -c "cp -rv /var/www/discourse/vendor/bundle/ruby /local-rubygems"
docker run -it -v ~/local/rubygems.org/plugin-gems/discourse-calendar:/local-rubygems local_discourse/app /bin/bash -c "cp -rv /var/www/discourse/plugins/discourse-calendar/gems /local-rubygems"
docker run -it -v ~/local/rubygems.org/plugin-gems/discourse-prometheus:/local-rubygems local_discourse/app /bin/bash -c "cp -rv /var/www/discourse/plugins/discourse-prometheus/gems /local-rubygems"
and then in /templates/web.template.yml :
- exec:
cd: $home
hook: bundle_exec
cmd:
# copy local ruby cache
- cp -rv /local-rubygems.org/ruby/* $home/vendor/bundle/ruby/
- cp -rv /local-rubygems.org/plugin-gems/* $home/plugins/
- su discourse -c 'bundle install --local --deployment --retry 3 --jobs 4 --verbose --without test development'
By the way it looks like the topic for Active Directory IIS SSO got lost at some point, but the code is still available at GitHub - laktak/discourse-sso: Single Sign On for Discourse with Active Directory and still works with the now renamed DiscourseConnect SSO
لقد جربت ترقية أخرى ويبدو أنه في مرحلة ما تمت إضافة قسم “yarn install” جديد إلى web.template.yml مما يؤدي إلى فشل داخل البيئة المعزولة.
- exec:
cd: $home
cmd:
- "[ ! -d 'node_modules' ] || su discourse -c 'yarn install --production && yarn cache list'"
عند مقارنة محتويات الحاوية القديمة والجديدة، يبدو أن هناك مجموعة من حزم yarn المخزنة مؤقتًا في /usr/local/share/.cache/yarn/v6 في الحاوية الجديدة، ولكن لا شيء في الحاوية القديمة. أفترض أن جميع حزم node.js المطلوبة كانت مدرجة في الصورة الأساسية، ولكن الآن يتم تحديثها أثناء إعادة البناء؟
سأقوم بتجربة نسخ ذاكرة التخزين المؤقت لـ yarn بنفس الطريقة التي تم بها نسخ ذاكرة التخزين المؤقت لـ ruby ، وأرى ما إذا كان بإمكاني جعل yarn يستخدم الحزم المخزنة مؤقتًا من صندوق البناء.