فشل apt-get update داخل مستودع yarn للحاوية غير موقع

لدي إجراء github يقوم ببناء الصور ويفشل عند محاولة إجراء apt-get update. ما زلت أبحث عن سبب ذلك، ولكن في تثبيت قمت به قبل ساعتين، أحصل على هذا الخطأ إذا قمت بتشغيل apt-get update داخل الحاوية.

root@monstera-web-only:/# apt-get update
Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
Get:2 https://dl.yarnpkg.com/debian stable InRelease [17.1 kB]
Get:3 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:4 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
Get:5 http://deb.debian.org/debian bullseye-backports InRelease [49.0 kB]
Get:6 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg InRelease [91.7 kB]
Get:7 http://deb.debian.org/debian bullseye/main amd64 Packages [8,183 kB]
Err:2 https://dl.yarnpkg.com/debian stable InRelease
  The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
Get:8 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [216 kB]
Get:9 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [14.6 kB]
Get:10 http://deb.debian.org/debian bullseye-backports/main amd64 Packages [384 kB]
Get:11 https://deb.nodesource.com/node_18.x bullseye InRelease [4,586 B]
Get:12 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg/main amd64 Packages [268 kB]
Get:13 https://deb.nodesource.com/node_18.x bullseye/main amd64 Packages [774 B]
Reading package lists... Done
W: GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
E: The repository 'https://dl.yarnpkg.com/debian stable InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
إعجاب واحد (1)

لا أرى أي أخطاء في عملية بناء الصور الآلية اليومية. هل يمكنك مشاركة مخرجات cat /VERSION من داخل الحاوية؟

أقسم أن هذا تثبيت قياسي. . .

# cat /VERSION
2.0.20230116

ما زلت أبحث في نظام التكامل المستمر الخاص بي لمعرفة ما إذا كان لدي شيء غبي هناك (وهو أمر ممكن تمامًا). لست متأكدًا مما يقوم بتشغيل apt-get update.

تحرير: يحتوي نظام التكامل المستمر الخاص بي على قالب يقوم بتثبيت vim. يقوم بتشغيل apt-get update. لا شيء في تثبيت عادي يقوم بتشغيل apt-get update على حد علمي، وهذا يفسر سبب عدم فشل نظام التكامل المستمر الخاص بك.

العديد من قوالب الاستيراد وقوالب ترقية postgres (المدرجة أدناه) تقوم بتشغيل apt-get update، لذا ستكون هذه مشكلة في وقت ما.

root@monstera:/var/discourse# grep -lr 'apt-get update'
templates/postgres.9.5.template.yml
templates/postgres.13.template.yml
templates/postgres.template.yml
templates/import/mbox.template.yml
templates/import/mysql-dep.template.yml
templates/import/vanilla.template.yml
templates/import/chrome-dep.template.yml
templates/import/phpbb3.template.yml
templates/postgres.10.template.yml
templates/postgres.12.template.yml
image/base/slim.Dockerfile
إعجاب واحد (1)

نعم، هذا سيكون سؤالي التالي لأن تشغيل تحديث كهذا ليس افتراضيًا وسيؤدي إلى تباين يصعب تتبعه، لأن معظم المواقع تستخدم نظام تشغيل ثابت وتعتمد على صورة جديدة لتحديث الأشياء على مستوى نظام التشغيل.

إذا تعطل مستودع yarn apt، أفترض أنه سيتعطل أيضًا في نظام CI الخاص بنا.

يمكنني التحقق من ذلك الأسبوع المقبل. ربما نحتاج إلى إصدار صورة أساسية جديدة لذلك.

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

يبدو جيدًا. فقط للتأكيد، أحتاج إلى بناء حاوية استيراد phpbb3 جديدة ولا يمكنني ذلك. إليك كيفية إصلاح ذلك.

إليك هذا:

لكنه يوصي باستخدام curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - ولكن apt-key تم إيقافه.

إذا قمت بذلك في الحاوية:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg -o /usr/share/keyrings/yarn-keyring.asc \
    && sed -i '1s;^deb;deb [signed-by=/usr/share/keyrings/yarn-keyring.asc];' /etc/apt/sources.list.d/yarn.list

ثم يمكنني القيام بهذا:

root@monstera-web-only:/# apt-get update
Hit:1 https://deb.nodesource.com/node_18.x bullseye InRelease
Hit:2 http://deb.debian.org/debian bullseye InRelease
Get:3 https://dl.yarnpkg.com/debian stable InRelease [17.1 kB]
Get:4 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Hit:5 http://deb.debian.org/debian bullseye-updates InRelease
Hit:6 http://deb.debian.org/debian bullseye-backports InRelease
Get:7 https://dl.yarnpkg.com/debian stable/main all Packages [10.9 kB]
Get:8 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [216 kB]
Hit:9 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg InRelease
Get:10 https://dl.yarnpkg.com/debian stable/main amd64 Packages [10.9 kB]
Fetched 286 kB in 0s (849 kB/s)
Reading package lists... Done

بالمثل، إذا أضفت

          - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg -o /usr/share/keyrings/yarn-keyring.asc && sed -i '1s;^deb;deb [signed-by=/usr/share/keyrings/yarn-keyring.asc];' /etc/apt/sources.list.d/yarn.list

قبل apt-get update في templates/import/phpbb3.template.yml يمكنني بناء حاوية جديدة.

3 إعجابات

@Falco آسف على مشاركتي المكررة!

@pfaffman شكراً جزيلاً! أؤكد أن هذا الحل البديل يعمل مع mysql-dep.template.yml أيضاً.

إعجابَين (2)

أتلقى ما يبدو أنه أخطاء مماثلة عند التحديث.

Err:7 https://dl.yarnpkg.com/debian stable InRelease
  The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
Get:13 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg/main amd64 Packages [268 kB]
Reading package lists...
FAILED

--------------------

Pups::ExecError: cd /var/www/discourse & apt-get update & DEBIAN_FRONTEND=noninteractive apt-get install -y libsqlite3-dev failed with return #<Process::Status: pid 532 exit 100>

Location of failure: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'

exec failed with the params {"cd"=>"$home", "cmd"=>["apt-get update & DEBIAN_FRONTEND=noninteractive apt-get install -y libsqlite3-dev", "echo \"gem 'sqlite3'\" >> Gemfile", "su discourse -`Preformatted text`c 'bundle config unset deployment'", "su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'"]}

من discourse-doctor أحصل على:

Checking your domain name . . .

Connection to xxx succeeded.

You should probably remove any non-standard plugins and rebuild.

Attempting to restart existing container. . .

x86_64 arch detected.

WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml

starting up existing container

+ /usr/bin/docker start app

Error response from daemon: driver failed programming external connectivity on endpoint app (c143632e34e1ae05e48759bdf163b4bbe5dc9aaf895f1fb7521f7e3784c26577): Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use

Error: failed to start containers: app

Failed to restart the container.

هل هناك أي شيء يمكنني فعله بخلاف التثبيت الجديد؟

لقد قمت بنقل هذا إلى هذا الموضوع @fidelio للحفاظ على تجميع التقارير معًا. :+1:

إعجابَين (2)

بصفتي “هاوٍ طموح”، سؤال سريع:
كيف أقوم بتنفيذ أمر Curl “داخل الحاوية”؟

في منشور أعلاه، أدرجت أن أمر curl يمكن تضمينه في القالب الذي يقوم بتشغيل apt-get. Apt-get update fails inside container yarn repo not signed - #6 by rahim123

@fidelio مرحبًا، هل تحتاج إلى الاتصال بقاعدة بيانات أخرى مثل SQLite من داخل مثيل Discourse الخاص بك، أي هل تقوم باستيراد بيانات من منتدى آخر؟ بخلاف ذلك، يمكنك تعطيل هذه الوظيفة وإعادة بناء حاوية تطبيق Discourse العادية بشكل جيد.

تخميني هو أنه لم يقم بالترقية إلى PG 13 ويستخدم القالب pg12؟ هذه مشكلة يجب حلها على أي حال. ومن المؤكد أن نظام التشغيل يحتاج إلى الترقية والانتقال إلى جهاز افتراضي جديد هو ما يجب فعله.

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

مرحباً @rahim123. لا، لست بحاجة إلى القيام بأي من هذين الأمرين في هذه المرحلة. كيف يمكنني تعطيل الوظيفة؟

@pfaffman آه، بدا الأمر غريبًا أن سجل الأخطاء الخاص به كان يشتكي من محاولة تثبيت libsqlite3-dev، أو هل يستخدم Discourse ذلك لشيء ما بشكل طبيعي؟

@fidelio هل يمكنك لصق قسم templates: من ملف /var/discourse/containers/app.yml هنا؟ تأكد من عدم تضمين أي كلمات مرور موجودة في مكان آخر في الملف. يمكنك أيضًا تشغيل /var/discourse/discourse-doctor وسيساعدك في إنشاء تقرير قابل للمشاركة علنًا حول كيفية تكوين نظامك.

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

@rahim123 بالتأكيد، إليك تقرير discourse-doctor:

تم العثور على containers/app.yml

==================== إعدادات YML ====================
DISCOURSE_HOSTNAME=community.bfs-filmeditor.de
SMTP_ADDRESS=in-v3.mailjet.com
DEVELOPER_EMAILS=xxx
SMTP_PASSWORD=xxx
SMTP_PORT=25
SMTP_USER_NAME=xxx
LETSENCRYPT_ACCOUNT_EMAIL=xxx

==================== معلومات دوكر ====================
إصدار دوكر: Docker version 18.06.1-ce, build e68fc7a

عمليات دوكر (docker ps -a)

معرف الحاوية        الصورة                           الأمر             تم الإنشاء        الحالة        المنافذ                                      الأسماء
ce58652241d9        local_discourse/app             "/sbin/boot"        قبل أسبوعين      قيد التشغيل    0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   app
8e6b8ec432b4        local_discourse/mail-receiver   "/sbin/boot"        قبل 11 شهرًا     قيد التشغيل    0.0.0.0:25->25/tcp                         mail-receiver

ce58652241d9        local_discourse/app             "/sbin/boot"        قبل أسبوعين      قيد التشغيل    0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   app

حاوية Discourse app قيد التشغيل


==================== الإضافات ====================
          - git clone https://github.com/discourse/docker_manager.git
          - git clone  https://github.com/davidtaylorhq/discourse-whos-online.git
          - git clone https://github.com/gdpelican/babble.git
          - git clone https://github.com/angusmcleod/discourse-quick-messages.git
          - git clone https://github.com/angusmcleod/discourse-events.git
          - git clone https://github.com/discourse/discourse-calendar.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/davidtaylorhq/discourse-telegram-notifications.git

تحذير:
لديك ما يبدو أنه إضافات غير رسمية.
إذا كنت تواجه مشكلة، يجب عليك تعطيلها والمحاولة إعادة البناء مرة أخرى.

انظر https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb للحصول على القائمة الرسمية.

========================================
إصدار Discourse في community.bfs-filmeditor.de: TYPO3 CMS
إصدار Discourse في localhost: TYPO3 CMS


==================== معلومات الذاكرة ====================
ذاكرة الوصول العشوائي (MB): 4039

              الإجمالي     المستخدم      الحر      مشترك  المخزن المؤقت/الذاكرة المؤقتة   المتاح
الذاكرة:           3944        1272        1236        1067        1436        1364
التبديل:             0           0           0

==================== فحص مساحة القرص ====================
---------- مساحة قرص نظام التشغيل ----------
نظام الملفات      الحجم  المستخدم  المتاح  النسبة المئوية  نقطة التركيب
/dev/vda1        78G   60G   18G  78% /

---------- مساحة قرص الحاوية ----------
نظام الملفات      الحجم  المستخدم  المتاح  النسبة المئوية  نقطة التركيب
overlay          78G   60G   18G  78% /
/dev/vda1        78G   60G   18G  78% /shared
/dev/vda1        78G   60G   18G  78% /var/log

==================== معلومات القرص ====================
القرص /dev/vda: 80 GiB، 85899345920 بايت، 167772160 قطاع
الوحدات: قطاعات من 1 * 512 = 512 بايت
حجم القطاع (منطقي/فعلي): 512 بايت / 512 بايت
حجم الإدخال/الإخراج (الحد الأدنى/الأمثل): 512 بايت / 512 بايت
نوع تسمية القرص: gpt
معرف القرص: C1F9A1FE-534C-4DAC-9299-5CC180C29DCE

الجهاز      البداية       النهاية   القطاعات  الحجم  النوع
/dev/vda1  227328 167772126 167544799 79.9G نظام ملفات لينكس
/dev/vda14   2048     10239      8192    4M BIOS boot
/dev/vda15  10240    227327    217088  106M Microsoft basic data

إدخالات جدول الأقسام ليست بترتيب القرص.

==================== نهاية معلومات القرص ====================

لقد قمت بتعطيل الرسائل السريعة ولكن لم أقم بإزالتها بعد.

على أي حال، أعتقد أن babble معطل منذ بعض الوقت:

3 إعجابات

اعتقدت أن discourse-doctor يظهر القوالب التي تم تمكينها، على ما يبدو لا. هل يمكنك نشر هذا أيضًا؟

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

لا يفعل ذلك. على الرغم من أنه يبدو فكرة جيدة، إلا أنها المرة الأولى التي أتذكر فيها أنها كانت مهمة.

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

Here it is:

 GNU nano 2.9.3                                                                         containers/app.yml                                                                                   
 
 
 ## this is the all-in-one, standalone Discourse Docker container template
 ##
 ## After making changes to this file, you MUST rebuild
 ## /var/discourse/launcher rebuild app
 ##
 ## BE *VERY* CAREFUL WHEN EDITING!
 ## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
 ## visit http://www.yamllint.com/ to validate this file as needed
 
 templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
 ## Uncomment these two lines if you wish to add Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/import/mbox.template.yml"
 ## which TCP/IP ports should this container expose?
 ## If you want Discourse to share a port with another webserver like Apache or nginx,
 ## see https://meta.discourse.org/t/17247 for details
 expose:
  - "80:80"   # http
  - "443:443" # https
 
 params:
  db_default_text_search_config: "pg_catalog.english"
 
  ## Set db_shared_buffers to a max of 25% of the total memory.
  ## will be set automatically by bootstrap based on detected RAM, or you can override
  db_shared_buffers: "1024MB"
 
  ## can improve sorting performance, but adds memory usage per-connection
  #db_work_mem: "40MB"
 
  ## Which Git revision should this container use? (default: tests-passed)
  #version: tests-passed
 
 env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en
 
  ## How many concurrent web requests are supported? Depends on memory and CPU cores.
  ## will be set automatically by bootstrap based on detected CPUs, or you can override
  UNICORN_WORKERS: 4

أعتقد أن هذه هي المشكلة، حاول وضع علامة # أمامها وتشغيل ./launcher rebuild app.

إعجابَين (2)