调试docker-compose构建,冻结构建第一个服务

时间:2018-02-27 10:47:20

标签: docker docker-compose containers amazon-ecs

我一直在关注如何将Docker容器部署到AWS的教程,我已成功完成了这项工作。但是现在我已经用自己的代码/逻辑修改了一个烧瓶网络应用程序,它永远不会完成构建第一个服务。

我的上一个命令:

docker-compose -f docker-compose-prod.yml up -d --build

明星说:

Building feapi

然后没有任何反应,有时我得到:

ERROR: SSL error: ('The write operation timed out',)

我如何调试这个或者至少看看场景背后发生了什么,因为我不确定导致错误的原因是什么?我知道docker-compose提供日志但不确定如何实现它以及是否必要。

2 个答案:

答案 0 :(得分:4)

有时您的上下文包含太多文件。

当docker build开始时,它将收集项目文件夹/上下文目录中的所有文件,除非您在 .dockerignore 中提及它们。 如果周围有GB的文件,它可以收集几分钟,因此图像大小会很大。

在官方文档(https://docs.docker.com/develop/develop-images/dockerfile_best-practices/)中,请参见以下段落:

“在您的Dockerfile不需要将文件复制到映像中的情况下,省略构建上下文会很有用,因为没有文件发送到守护程序,因此可以提高构建速度。”

如果不确定构建上下文的大小,则可以运行简单的docker build,它会打印找到的上下文大小。例如:

> docker build -t check-context:latest .
Sending build context to Docker daemon  1.086MB
...

答案 1 :(得分:1)

docker-composer --build为您做docker build。 如果手动运行docker build命令,则将获得构建的输出。

然后,docker build只运行Dockerfile的命令,这取决于您将Dockerfile命令置于详细/调试模式。