Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试jenkins服务器中的docker构建_Docker - Fatal编程技术网

调试jenkins服务器中的docker构建

调试jenkins服务器中的docker构建,docker,Docker,我有一个Jenkins服务器,它构建docker映像(使用docker maven插件) 这些构建通常需要大约40秒。但有时需要1.5个小时 现在我想知道为什么。我还想知道如何调试这种情况。 jenkins控制台中的构建输出告诉我它在maven docker构建期间挂起。挂起的输出示例: [INFO] ------------------------------------------------------------------------ [INFO] Building MY Docker

我有一个Jenkins服务器,它构建docker映像(使用docker maven插件)

这些构建通常需要大约40秒。但有时需要1.5个小时

现在我想知道为什么。我还想知道如何调试这种情况。 jenkins控制台中的构建输出告诉我它在maven docker构建期间挂起。挂起的输出示例:

[INFO] ------------------------------------------------------------------------
[INFO] Building MY Docker Image MY Image 0.5.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> docker-maven-plugin:0.15.14:build (default-cli) > initialize @ docker-image-my-image >>>
[INFO] 
[INFO] <<< docker-maven-plugin:0.15.14:build (default-cli) < initialize @ docker-image-my-image <<<
[INFO] 
[INFO] --- docker-maven-plugin:0.15.14:build (default-cli) @ docker-image-my-image ---
[INFO] Building tar: /usr/home/jenkinshome/workspace/JOB_NAME/source-repo/docker/image-my-image/docker-build.tar
[INFO] DOCKER> docker-build.tar: Created [my-image] in 69 milliseconds

在这一点上,它挂起了

你在这里有很多选择,你必须找出哪一个最适合你。你可以:

  • strace
    docker主机上的进程
  • 在主机上使用类似于sysdig的东西,这更容易使用,也更详细
  • 执行printf调试或某种类型的日志记录,表明您的构建对stdout/stderr和
    docker log-f
    仍处于活动状态,以查看是构建卡住了还是jenkins从/主进程

任何更详细的建议都可能需要更多关于您的设置、挂起的含义以及挂起的组件的信息。

您在这里有很多选项,您必须找出哪一个最适合您。你可以:

  • strace
    docker主机上的进程
  • 在主机上使用类似于sysdig的东西,这更容易使用,也更详细
  • 执行printf调试或某种类型的日志记录,表明您的构建对stdout/stderr和
    docker log-f
    仍处于活动状态,以查看是构建卡住了还是jenkins从/主进程

任何更详细的建议都可能需要更多关于您的设置、挂起的含义以及挂起的组件的信息。

我更新了我的问题以进行澄清。我应该在docker主机上选择哪个进程?多克德?它什么也没做…@Nathan不,你需要找到“容器”过程。这就是您的容器显示为的过程,strace就是。@Nathan,我现在发现我误解了您的问题,似乎您的
docker构建过程是挂起的。为此,您必须浏览
dockerd
docker cli
。查看docker守护程序的日志,挂起的常见原因是非常大的构建上下文。谢谢所有帮助。我发布了strace输出,它并没有告诉我任何事情。dockerd上的strace也没有输出任何有趣的内容。@Nathan这是您通过
strace-f
获得的输出吗?我怀疑这没有
-f
标志。我更新了我的问题以进行澄清。我应该在docker主机上选择哪个进程?多克德?它什么也没做…@Nathan不,你需要找到“容器”过程。这就是您的容器显示为的过程,strace就是。@Nathan,我现在发现我误解了您的问题,似乎您的
docker构建过程是挂起的。为此,您必须浏览
dockerd
docker cli
。查看docker守护程序的日志,挂起的常见原因是非常大的构建上下文。谢谢所有帮助。我发布了strace输出,它并没有告诉我任何事情。dockerd上的strace也没有输出任何有趣的内容。@Nathan这是您通过
strace-f
获得的输出吗?我怀疑这没有
-f
标志。
futex(0xc820028908, FUTEX_WAKE, 1)      = 1
clock_gettime(CLOCK_REALTIME, {1486567620, 329675667}) = 0
clock_gettime(CLOCK_REALTIME, {1486567620, 329756643}) = 0
socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
setsockopt(3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/docker.sock"}, 23) = 0
clock_gettime(CLOCK_REALTIME, {1486567620, 330059768}) = 0
epoll_create1(EPOLL_CLOEXEC)            = 4
epoll_ctl(4, EPOLL_CTL_ADD, 3, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=3892185696, u64=139659048782432}}) = 0
getsockname(3, {sa_family=AF_LOCAL, NULL}, [2]) = 0
getpeername(3, {sa_family=AF_LOCAL, sun_path="/var/run/docker.sock"}, [23]) = 0
futex(0xc820028908, FUTEX_WAKE, 1)      = 1
read(3, 0xc820349000, 4096)             = -1 EAGAIN (Resource temporarily unavailable)
write(3, "POST /v1.24/build?buildargs=%7B%"..., 349) = 349
futex(0xc820028d08, FUTEX_WAKE, 1)      = 1
write(3, "7ff\r\nockerfile\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2054) = 2054
ioctl(0, TIOCGWINSZ, {ws_row=57, ws_col=105, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(0, TIOCGWINSZ, {ws_row=57, ws_col=105, ws_xpixel=0, ws_ypixel=0}) = 0
) = 481, "Sending build context to Docker "..., 48Sending build context to Docker daemon 2.048 kB
write(1, "\r\n", 2
)                     = 2
write(3, "0\r\n\r\n", 5)                = 5
futex(0xc820028d08, FUTEX_WAKE, 1)      = 1
futex(0x12d3a48, FUTEX_WAIT, 0, NULLStep 1 : FROM jboss-db
 ---> 74a0020a9922
Step 2 : MAINTAINER ***
 ---> Using cache
 ---> 5d38cbd5501b
Step 3 : USER root:root
 ---> Running in 64b14554d8be