/usr/bin/docker: استجابة خطأ من الديمن: فشل السائق في برمجة الاتصال الخارجي على نقطة النهاية app

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

كلما حاولت تشغيل ./launcher rebuild app، يذهب الأمر حتى النهاية ثم…

Removing old container
+ /usr/bin/docker rm app
app

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_HOSTNAME=bitkcor.com -e DISCOURSE_DEVELOPER_EMAILS=admin@bitkcor.com -e DISCOURSE_SMTP_ADDRESS=smtp.mailgun.org -e DISCOURSE_SMTP_PORT=2525 -e DISCOURSE_SMTP_USER_NAME=postmaster@bitkcor.com -e DISCOURSE_SMTP_PASSWORD=af3ce4432f9613e0b36545e5c1b941c6-c1fe131e-22e64a1e -e LETSENCRYPT_ACCOUNT_EMAIL=admin@bitkcor.com -h bitkcor-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:d6:ee:ff:fa:8d local_discourse/app /sbin/boot
2bef25314e87e6c0679ced8f3c04dd8a98808350baba7a4ff94a3e4c55dc5c20
/usr/bin/docker: Error response from daemon: driver failed programming external connectivity on endpoint app (095c02cba7ddee18c64f04ccd1043408aa8ffed8a3c560b8eeeea133c7abe6c6): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use.

أظن أن الحل يجب أن يكون سهلاً، لكنني لا أستطيع العثور عليه.

هل يعرف أحد الإجابة؟

هناك شيء ما يشغل المنفذ 80، مما يعني وجود خادم ويب من نوع ما.

شكرًا لك جيف، قرأت تعليقك على موضوع متعلق بهذا من عام 2015 في وقت سابق من اليوم. هل هناك أمر في الطرفي لتتبع ما يستخدمه؟

جربت الأمر sudo lsof -i :80 وحصلت على النتيجة التالية.

COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   3336     root    6u  IPv4  21408      0t0  TCP *:http (LISTEN)
nginx   3336     root    7u  IPv6  21409      0t0  TCP *:http (LISTEN)
nginx   3338 www-data    6u  IPv4  21408      0t0  TCP *:http (LISTEN)
nginx   3338 www-data    7u  IPv6  21409      0t0  TCP *:http (LISTEN)
nginx   3339 www-data    6u  IPv4  21408      0t0  TCP *:http (LISTEN)
nginx   3339 www-data    7u  IPv6  21409      0t0  TCP *:http (LISTEN)

حسناً، لقد كنت أفعل ذلك بشكل خاطئ. خرجت من root وقمت بتشغيل sudo lsof -i :80 مرة أخرى. لا يزال الأمر يحاول معرفة ما هذا، لكن هذا تقدم.

COMMAND   PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Google    671 triberocket   30u  IPv4 0x1e729b312ca69e05      0t0  TCP 10.0.0.237:56713->server-13-249-71-64.dfw53.r.cloudfront.net:http (ESTABLISHED)
Google    671 triberocket   58u  IPv4 0x1e729b311af72ba5      0t0  TCP 10.0.0.237:56714->server-13-249-71-64.dfw53.r.cloudfront.net:http (ESTABLISHED)

أنا مشوش تماماً الآن. استخدمت مراقب النشاط ورتّبت حسب المنفذ. تطبيق Google Drive File Stream الذي حمّلته للتو كان مصمماً لاستخدام المنفذ 80. التطبيق كان غريباً لذا قمت بحذفه بالكامل وتفريغ سلة المهملات. بمجرد إيقاف تشغيل تطبيق Google، ظهر شيء يُدعى ContactAccountsServices في مراقب النشاط. أوقفته وأعدت تشغيل الكمبيوتر بالكامل.

أُعيد تشغيل الكمبيوتر. اكتشفت أن ما يُسمى Google أعلاه هو تبويبتان في Chrome. أغلقت Chrome وشغّلت الأمر ./launcher rebuild app. بعد إعادة التشغيل، دخلت عبر ssh root@... ونفذت system reboot على خادم Ubuntu. بدا أن هذا فعل شيئاً، لكن لا ترغب أبداً في التفاؤل كثيراً. لذا عدت، وببساطة:

2020-04-10 22:38:39.934 UTC [49] LOG: aborting any active transactions

2020-04-10 22:38:39.937 UTC [49] LOG: worker process: logical replication launcher (PID 58) exited with exit code 1

2020-04-10 22:38:39.939 UTC [53] LOG: shutting down

166:M 10 Apr 2020 22:38:39.942 # User requested shutdown...

166:M 10 Apr 2020 22:38:39.942 * Saving the final RDB snapshot before exiting.

2020-04-10 22:38:39.964 UTC [49] LOG: database system is shut down

166:M 10 Apr 2020 22:38:39.978 * DB saved on disk

166:M 10 Apr 2020 22:38:39.978 # Redis is now ready to exit, bye bye...

sha256:ab0f0c30c7e98b280832fc0355cd0a3eada6063b268b8ae1371e9d315b0ca43e

293cf39b9377bfd9dda6a0e3b9d43bde3e6dcc8341d34d9da21a155f18afb45c

Removing old container

+ /usr/bin/docker rm app

app

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_HOSTNAME=bitkcor.com -e DISCOURSE_DEVELOPER_EMAILS=admin@bitkcor.com -e DISCOURSE_SMTP_ADDRESS=smtp.mailgun.org -e DISCOURSE_SMTP_PORT=2525 -e DISCOURSE_SMTP_USER_NAME=postmaster@bitkcor.com -e DISCOURSE_SMTP_PASSWORD=af3ce4432f9613e0b36545e5c1b941c6-c1fe131e-22e64a1e -e LETSENCRYPT_ACCOUNT_EMAIL=admin@bitkcor.com -h bitkcor-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:d6:ee:ff:fa:8d local_discourse/app /sbin/boot

b2076d8166130c73c7d988e7e51ac100b9a12ce75f020328d0f47eebdad5e9a3

/usr/bin/docker: Error response from daemon: driver failed programming external connectivity on endpoint app (ba1f594a24e17f29cdaeb0cfe3f2a79af2bb7d22a28c4902c97d37e8f5036347): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use.

إذن، نعم. أنا مستعد لإخراج تنانير العشب وعظام الدجاج لحل هذه المشكلة. إنها نوع من السحر يجب أن يكون شيئاً بسيطاً أنظر إليه مباشرة لكنني لم أجربه. ما هو ذلك؟ لا أستطيع أن أخبرك. هل يمكنك إخباري؟ من فضلك؟ عقلي على المحك. أنا أفضل من هذا. lol

جرّب sudo systemctl stop nginx.

تمت إزالة صفحة الترحيب الخاصة بـ nginx، لكن الآن لا يتم تحميل أي شيء — https://bitkcor.com/

ما زلتُ أنظر إلى صفحة فارغة. هل يجب أن أعيد تشغيل شيء ما الآن؟ أي اقتراحات؟

في الواقع، فقط أعد تعيين SSL إلى وضع Strict في Cloudflare، وعاد كل شيء كما كان.

كان الأمر هو sudo systemctl stop nginx.

شكرًا لك يا @riking!