首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven挂起码头容器内的下载

Maven挂起码头容器内的下载
EN

Stack Overflow用户
提问于 2014-12-30 13:06:24
回答 2查看 2.6K关注 0票数 2

我有一个gitlab与gitlab ci和一个跑步者,所有运行良好的一台CoreOs机器。

所有3个服务都使用以下dockerfiles服务文件和构建脚本运行:

构建脚本:

代码语言:javascript
复制
git submodule update --init

ls -la

mvn install

CI服务:

代码语言:javascript
复制
    [Unit]
    Description=CI

    # Requirements
    Requires=docker.service
    Requires=db.service
    Requires=gitlab.service
    Requires=redis.service


    # Dependency ordering
    After=docker.service
    After=db.service
    After=gitlab.service
    After=redis.service

    [Service]
    User=core

    # Let the process take awhile to start up (for first run Docker containers)
    TimeoutStartSec=0

    # Get CoreOS environmental variables
    EnvironmentFile=/etc/environment

    # Pre-start and Start
    ## Directives with "=-" are allowed to fail without consequence
    KillMode=none
    Restart=always
    RestartSec=2

    ExecStartPre=-/usr/bin/docker kill ci
    ExecStartPre=-/usr/bin/docker rm ci
    ExecStartPre=/usr/bin/docker pull sameersbn/gitlab-ci:5.2.0
    ExecStart=/usr/bin/docker run --name ci \
     -e 'DB_TYPE=mysql' -e 'DB_HOST=${COREOS_PRIVATE_IPV4}' -e 'DB_NAME=***' -e 'DB_USER=***' -e 'DB_PASS=********'\
     -e 'REDIS_HOST=${COREOS_PRIVATE_IPV4}' -e 'REDIS_PORT=6379'\
     -e 'GITLAB_URL=http://${COREOS_PRIVATE_IPV4}:8081/'\
     -e 'GITLAB_CI_HOST=${COREOS_PRIVATE_IPV4}'\
     -e 'GITLAB_CI_PORT=8080'\
     -e 'GITLAB_CI_HTTPS=true'\
     -e 'GITLAB_CI_EMAIL=*****************'\
     -e 'SMTP_USER=**********' -e 'SMTP_PASS=**********'\
     -p 8080:80 \
     sameersbn/gitlab-ci:5.2.0

    # Stop
    ExecStop=/usr/bin/docker stop ci

接线员服务:

代码语言:javascript
复制
        [Unit]
        Description=CI Runner Maven & Dart

        # Requirements
        Requires=docker.service
        Requires=ci.service
        Requires=db.service
        Requires=gitlab.service
        Requires=redis.service

        # Dependency ordering
        After=docker.service
        After=ci.service
        After=db.service
        After=gitlab.service
        After=redis.service


        [Service]
        User=core

        # Let the process take awhile to start up (for first run Docker containers)
        TimeoutStartSec=0

        RemainAfterExit=yes

        # Get CoreOS environmental variables
        EnvironmentFile=/etc/environment

        #Pre-start and Start
        ## Directives with "=-" are allowed to fail without consequence

        ExecStartPre=-/usr/bin/docker kill ci-runner-maven-dart
        ExecStartPre=-/usr/bin/docker rm ci-runner-maven-dart
        ExecStartPre=/usr/bin/docker pull registry.globaleda.pt/globaleda/ci-runner-maven-dart:latest
        ExecStart=/usr/bin/docker run --name ci-runner-maven-dart -d \
            -v /data/ci-runner-maven-dart:/home/gitlab_ci_runner/data \
            registry.globaleda.pt/globaleda/ci-runner-maven-dart:latest

        # Stop
        ExecStop=/usr/bin/docker stop ci-runner-maven-dart

Ci runner博士文件:

代码语言:javascript
复制
FROM lemonbar/gitlab-runner-jdk-maven:1.0
MAINTAINER jrofurtado@gmail.com

RUN apt-get update
RUN apt-get install curl -y

# Install dartIn the dockerfile i added ENV MAVEN_OPTS -Djava.net.preferIPv4Stack=true

RUN apt-get install apt-transport-https -y
RUN sh -c 'curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -'
RUN sh -c 'curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list'
RUN apt-get update
RUN apt-get install dart -y
ENV DART_HOME /usr/lib/dart

RUN apt-get -y install ca-certificates curl
ADD globaleda.crt /usr/local/share/ca-certificates/
RUN update-ca-certificates
RUN git config --global http.sslverify false 
RUN apt-get update
RUN curl -sSL https://get.docker.com/ubuntu/ | sudo sh
ENV DOCKER_HOST tcp://*************
ADD .dockercfg /
RUN rm -f /app/init
ADD init /app/
RUN chmod 777 /app/init

Ci dockerfile是sameersbn/gitlab:5.2.0的未经修改的版本。

当我编译一个maven项目(使用mvn安装)时,它开始下载所需的工件,并且下载挂起,如果我一次又一次地尝试下载,它会设法完全下载,问题是我需要一次不间断地下载(它设法继续使im将所有下载存储在映射的卷上)。

意见:

-I将Ci运行器容器部署在本地机器上,而不是服务器上,并链接到gitlab,问题依然存在。

-If您进入容器内部(使用docker -输入脚本或docker容器bash)并在终端上运行mvn,它可以下载所有应该下载的东西,尽管下载到挂起的构建中。

-i尝试在CI的dockerfile上将MAVEN_OPTS设置为-Djava.net.preferIPv4Stack=true,我还尝试将其包含在CI的构建脚本中以强制这个变量:

  • 在dockerfile中,我添加了ENV MAVEN_OPTS -Djava.net.preferIPv4Stack=true
  • 在构建脚本中,我添加了MAVEN_OPTS=-Djava.net.preferIPv4Stack=true

-Running处于调试模式(-e)或读取日志,我拥有的唯一信息是:下载超时

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-02 18:45:36

更新: Maven实际上没有挂起,构建已经完成,运行程序没有与gitlab通信,因为响应错误: 500,它成功地完成了它的工作。

代码语言:javascript
复制
>     2015-01-02 18:37:54 +0000 | Submitting build 439 to coordinator...response error: 500
>     2015-01-02 18:38:02 +0000 | Submitting build 439 to coordinator...response error: 500
>     2015-01-02 18:38:06 +0000 | Completed build 439, success.
>     2015-01-02 18:38:06 +0000 | Submitting build 439 to coordinator...response error: 500
>     2015-01-02 18:38:15 +0000 | Submitting build 439 to coordinator...response error: 500
>     2015-01-02 18:38:18 +0000 | Completed build 439, success.
>     2015-01-02 18:38:18 +0000 | Submitting build 439 to coordinator...response error: 500
>     2015-01-02 18:38:27 +0000 | Submitting build 439 to coordinator...response error: 500
>     2015-01-02 18:38:30 +0000 | Completed build 439, success.
>     2015-01-02 18:38:30 +0000 | Submitting build 439 to coordinator...response error: 500
>     2015-01-02 18:38:39 +0000 | Submitting build 439 to coordinator...response error: 500
票数 0
EN

Stack Overflow用户

发布于 2021-07-06 18:20:20

确保您的VPN关闭;-)

我在谷歌上搜索了同样的问题。在阅读了下面的评论之后

似乎存在一些网络权限/防火墙问题。

我记得我使用的是VPN连接。关闭VPN解决了我的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27706082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档