【问题标题】:docker-compose up hangs forever. How to debug?docker-compose up 永远挂起。如何调试?
【发布时间】:2022-02-22 14:08:24
【问题描述】:

我有一个带有 dockerfile 和 docker-compose.yml 的项目,用于部署它。但是如果我运行docker-compose up,该命令将打印Building app 并永远挂起。我没有看到正在执行任何步骤。它也没有下载图片,因为没有网络流量,并且使用的图片在缓存中可用。

如何在我的机器上调试和修复这个问题?我可以使用 docker(-compose) 的详细选项吗?

【问题讨论】:

  • 您可以随时添加一行来查看在调试时在 Dockerfile 中执行与否。还可以尝试查看 docker 日志。
  • 请采纳最佳答案✔️
  • 如果您在 VPS 上和/或 docker-compose --version 挂起,请查看我的答案。 tldr,您的系统熵可能较低。

标签: docker docker-compose


【解决方案1】:

由于这是“docker-compose hangs”的热门话题,我将发布我的问题的解决方案,这可以节省我 30 分钟的搜索时间。如果甚至 docker-compose --version 挂起,这可能是您的解决方案。

当系统熵低时,Docker-compose 似乎无限期挂起。您可以通过运行来检查:

cat /proc/sys/kernel/random/entropy_avail

如果输出小于 1000,那几乎肯定是它挂起的原因。我在 VPS 上遇到过这种情况,可用熵小于 10。

我的解决方法是安装haveged,它立即将我的可用熵增加到超过 2500,并导致 docker compose 正常工作。

安装很简单

apt install haveged

【讨论】:

  • 谢谢,这对我有用,但我以前从未在它发生的(虚拟)机器上遇到过这个问题。为什么会发生这种情况?
  • 传奇。一百万年我都不会猜到这一点。谢谢。
  • [sudo] apt-get install haveged
  • 安装后从 68 跳到 2238,并且 docker-compose 从那以后响应速度明显加快。这个答案赢得了我对 2021 年最佳答案的投票,因为我永远不会猜到这种方法。
  • @milosmns - 谢谢!是的,这个是从左场出来的。已经有一段时间了-但是iirc,compose调用了libsodium,直到有足够的熵-即使它似乎并不真正需要它(例如--version命令)。似乎在某些情况下,虚拟专用服务器不会产生足够的熵来满足这个条件,所以进程无限期地挂起。
【解决方案2】:

尝试使用此选项运行它,看看是否有帮助:

docker-compose --verbose up

*注意:如果您尚未构建容器,请使用选项 --build 运行相同的命令

【讨论】:

  • 我必须删除破折号才能工作:docker compose --verbose up
【解决方案3】:

我昨晚遇到了这个问题,对我来说问题是一个大的图像子目录,66GB。将子目录添加到 .dockerignore 文件解决了问题

【讨论】:

  • 这解决了我使用 1.27 版 docker-compose 的问题。我的解决方法是创建一个 .dockerignore 文件到与我的 docker-compose.yml 文件相同的目录,并在其中包含“大”子目录的名称。
  • 添加一个 .dockerignore 文件并直接忽略一个大文件(10+gb)也为我修复了它。谢谢
【解决方案4】:

我最近遇到了这个问题,这就是我解决它的方法。可能有多种原因。但就我而言,这是因为 RAM 和内存问题,这就是我修复它的方式

  • RAM 从 2GB 增加到 4GB
  • 将交换内存从 1GB 增加到 2GB

如果您没有任何此类问题,最好详细说明。这将在控制台上显示交互式日志

或者可以查看容器的日志

docker logs --tail=200 bootcamp

【讨论】:

    【解决方案5】:

    如果您在像伊朗这样的国家/地区,问题可能是制裁,您可以使用 VPN 或自定义反制裁 DNS 来修复它

    178.22.122.100
    185.51.200.2 
    OR 
    185.55.225.25
    185.55.226.26
    

    或者您可以使用为跨越制裁限制而构建的非官方 docker 注册表,例如 https://docker-registry.ir/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-05
      • 2018-12-18
      • 2019-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      相关资源
      最近更新 更多