GitLab管道Docker构建在apk上卡住了

GitLab管道Docker构建在apk上卡住了,docker,gitlab,gitlab-ci,gitlab-ci-runner,openshift-origin,Docker,Gitlab,Gitlab Ci,Gitlab Ci Runner,Openshift Origin,尝试制作一个简单的GitLab管道,为Alpine Linux+Openshift CLI构建Docker映像 代码如下: FROM frolvlad/alpine-glibc:latest MAINTAINER Daniel Widerin <daniel@widerin.net> ENV OC_VERSION=v3.11.0 \ OC_TAG_SHA=0cbc58b \ BUILD_DEPS='tar gzip' \ RUN_DEPS='curl ca

尝试制作一个简单的GitLab管道,为Alpine Linux+Openshift CLI构建Docker映像

代码如下:

FROM frolvlad/alpine-glibc:latest

MAINTAINER Daniel Widerin <daniel@widerin.net>

ENV OC_VERSION=v3.11.0 \
    OC_TAG_SHA=0cbc58b \
    BUILD_DEPS='tar gzip' \
    RUN_DEPS='curl ca-certificates gettext'

RUN apk --no-cache add $BUILD_DEPS $RUN_DEPS && \
    curl -sLo /tmp/oc.tar.gz https://github.com/openshift/origin/releases/download/${OC_VERSION}/openshift-origin-client-tools-${OC_VERSION}-${OC_TAG_SHA}-linux-64bit.tar.gz && \
    tar xzvf /tmp/oc.tar.gz -C /tmp/ && \
    mv /tmp/openshift-origin-client-tools-${OC_VERSION}-${OC_TAG_SHA}-linux-64bit/oc /usr/local/bin/ && \
    rm -rf /tmp/oc.tar.gz /tmp/openshift-origin-client-tools-${OC_VERSION}-${OC_TAG_SHA}-linux-64bit && \
    apk del $BUILD_DEPS

CMD ["/bin/sh"]
这样持续一个小时,直到管道超时

手动尝试了相同的Dockerfile,效果良好


如何诊断此问题?我如何才能找到有关此问题的日志?

发现此问题与基于Kubernetes/OpenShift的runner上Docker配置的Docker中运行时存在网络问题的Alpine image有关。将
--networkhost
添加到
Docker build
有助于解决此问题

Docker build --network host .

相关GitHub问题:GitHub.com/gliderlabs/docker-alpine/issues/307

如果它在您的机器上工作,但在执行GitLab作业的机器上不工作,则必须有所不同。首先,我将尝试直接从GitLab作业运行
curl
命令,并将其发送到同一URL,以查看是否存在一些问题。如果它起作用,就会有某种东西阻止docker容器到达该URL。如果它不起作用,则运行程序执行作业时出现问题。我也会尝试制作一个更简单的Dockerfile,直到我有了可以工作的东西,然后添加一些东西,直到它崩溃。如果您在GitLab的云运行程序上运行,您可以尝试更改为您可以控制的GitLab运行程序。如果它使用的是
docker executor
,则在作业完成/超时后,应该有作业剩余的docker容器,您可以检查它是否有一些日志文件。您还可以尝试手动启动docker容器,该容器使用与您的作业使用的相同映像,并查看是否可以手动运行生成作业的步骤。感谢您的帮助。我在标题上犯了一个错误,因为它没有卡在Curl上,而是在apk上。发现此问题与docker中的docker(DinD)和Alpine image有关,它们存在一些网络问题,将
--网络主机添加到
docker build
有助于解决此问题。
Docker build --network host .