如何使用 docker-compose 命令覆盖 COMPOSE_HTTP_TIMEOUT 的默认值

How to override the default value of COMPOSE_HTTP_TIMEOUT with docker-compose command

我有 docker-compose 可以获取一些图像并构建一个。 当我 运行 docker-compose up 时,出现以下错误

ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information. If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).

问题:如何用docker-compose命令传递COMPOSE_HTTP_TIMEOUT

COMPOSE_HTTP_TIMEOUT是环境变量,所以

COMPOSE_HTTP_TIMEOUT=200 docker-compose up

您需要 COMPOSE_HTTP_TIMEOUT 在您的 docker 实例级别 (docker-compose up) 而不是在您的 docker 映像中。所以解决方案是创建一个 .env 文件并将其放入:

#.env
COMPOSE_HTTP_TIMEOUT=200

你可以查看文档here

我最近遇到了这个问题。即使在覆盖默认 COMPOSE_HTTP_TIMEOUT 值后,它对我也不起作用。

可能的原因如文档中所述Compose CLI environment variables

COMPOSE_HTTP_TIMEOUT: Configures the time (in seconds) a request to the Docker daemon is allowed to hang before Compose considers it failed. Defaults to 60 seconds.

从我的 docker-compose 中删除 tty:true 对我有用。

有关该问题的更多详细信息撰写错误"HTTP request took too long to complete"#3633

Docker 环境详情:

$ docker-compose version

docker-compose version 1.18.0, build 8dd22a9
docker-py version: 2.6.1
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016



$ docker version
Client:
 Version:           18.09.1
 API version:       1.39
 Go version:        go1.10.6
 Git commit:        4c52b90
 Built:             Wed Jan  9 19:35:01 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.1
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       4c52b90
  Built:            Wed Jan  9 19:06:30 2019
  OS/Arch:          linux/amd64
  Experimental:     false

重启 docker

命令:sudo 服务docker重启

然后尝试docker-compose向上

对于 Mac 用户,restarting docker 从状态栏图标修复了这个问题:

.env 文件中添加这个:COMPOSE_HTTP_TIMEOUT=1000

打开终端并输入以下命令

COMPOSE_HTTP_TIMEOUT=200

验证类型

echo $COMPOSE_HTTP_TIMEOUT

输出:200