大家好,这个问题我已经卡了一周多了。我阅读了元讨论区所有相关的话题,并尝试了这里和其他地方的所有解决方案,但都没有效果。我真的束手无策了。
每次我尝试运行 ./launcher rebuild app 时,它都会一直运行到最后,然后……
正在移除旧容器
+ /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: 来自守护程序的错误响应:在端点 app (095c02cba7ddee18c64f04ccd1043408aa8ffed8a3c560b8eeeea133c7abe6c6) 上编程外部连接时驱动程序失败:启动用户态代理时出错:listen tcp 0.0.0.0:80: bind: 地址已在使用中。
我觉得解决方案肯定很简单,但就是找不到。
有人知道答案吗?
1 个赞
端口 80 被占用了,这意味着有某种 Web 服务器在运行。
2 个赞
谢谢 Jeff,今天早些时候我在一个关于 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)
1 个赞
好的,我之前操作错了。退出了 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)
1 个赞
现在彻底搞糊涂了。我使用了活动监视器并按端口排序。我刚下载的一个 Google Drive File Stream 应用被设计为占用 80 端口。这个应用太奇怪了,所以我直接把它删除并清空了废纸篓。就在我关闭 Google 应用后,活动监视器中又出现了一个名为 ContactAccountsServices 的进程。我把它关闭并执行了完整的电脑重启。
电脑重新启动后,我发现上面提到的 Google 实际上是 Chrome 中的两个标签页。我关闭了 Chrome 并运行了 ./launcher rebuild app。重启后,我通过 ssh root@... 登录到 Ubuntu 服务器,并执行了 system reboot。这似乎起到了一些作用,但你永远不要过早兴奋。于是我回到之前,长话短说:
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.
所以,是的。我已经准备好穿上草裙、拿着鸡骨头来调试这个问题了。这看起来像是某种巫术,但肯定是我正盯着却还没尝试过的某个简单问题。那到底是什么呢?我无法告诉你。你能告诉我吗?拜托了?我的理智正悬于一线。我不至于这么差劲。哈哈
2 个赞
riking
(Kane York)
7
尝试运行 sudo systemctl stop nginx。
4 个赞
已移除 nginx 欢迎页面,但现在无法加载任何内容 — https://bitkcor.com/
还在盯着空白页面发呆。我现在需要重启什么吗?有什么建议吗?
实际上,只需在 Cloudflare 中将 SSL 设置改回“严格”模式,一切就都恢复了。
执行 sudo systemctl stop nginx 就是解决方案。
感谢 @riking!
2 个赞
system
(system)
关闭
11
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.