标签: gitlab-ci-runner

使用Docker runner在Gitlab CI中使用代理的问题

我想在Docker Gitlab CI运行器中打包我的Maven/Java应用程序.

我是一家公司代理人.这是我的.gitlab-ci.yml:

image: maven:3-jdk-7

build:
  script: "mvn clean package -B"
Run Code Online (Sandbox Code Playgroud)

触发构建时,我收到此错误(在Gitlab构建控制台中):

未知主机repo.maven.apache.org:名称或服务未知 - > [帮助1]

然后,我补充说

variables:
  http_proxy: http://user:pass@corp.proxy.ip:port
Run Code Online (Sandbox Code Playgroud)

到了.gitlab-ci.yml.但我得到另一个错误:

致命:无法访问' http:// gitlab-ci-token:xxxxxx@170.20.20.20:8080/myapp.git / ':请求的网址返回错误:504

当我注册Docker runner时,选择了Docker镜像maven:3-jdk-7.

我刚刚尝试no_proxy使用172.20.20.20作为值(Gitlab IP)添加变量但是我得到了相同的错误(第一个.)

我该如何解决?有没有办法强制Docker运行器(容器)使用--net=host

docker gitlab-ci gitlab-ci-runner

12
推荐指数
1
解决办法
2340
查看次数

Gitlab runner + autoscaling + scaled runner选项

我正在使用带docker+machine执行程序的gitlab runner 来启动AWS上的自动标量运行程序.我想在runners中使用docker-in-docker设置来构建容器,但我无法找到如何[runners.docker]为生成的runner 定义所需的属性以启用docker使用.

是否有可能以某种方式将一些配置信息传递给自动转换的跑步者?

gitlab docker gitlab-ci gitlab-ci-runner

12
推荐指数
1
解决办法
890
查看次数

如何在Gitlab CI中缓存Gradle依赖项

gitlab-ci.yml在我的Android项目中的文件中添加了缓存属性.

cache:
  paths:
    - .gradle/wrapper
    - .gradle/caches
Run Code Online (Sandbox Code Playgroud)

但是在我运行的每个管道中./gradlew assemble,它会下载所有gradle依赖项,这会导致构建时间变慢.

android gradle gitlab-ci gitlab-ci-runner

12
推荐指数
2
解决办法
5330
查看次数

gitlab-runner:管道无限挂起

我安装了特定的运行程序,并且状态为已激活。

\n

我的 .gitlab-ci.ymi 文件代码:

\n
stages:\n  - build\n\nbuild_maven:\n  stage: build\n  only:\n    - master\n  script:\n    - echo "hello CI/CD"\n  tags: \n    - vue-dev-pub\n
Run Code Online (Sandbox Code Playgroud)\n

当我推送 master 分支时,gitlab-runner 正在运行,但它无限挂起\xe3\x80\x82

\n

职位页面显示:

\n
\n

这项工作还没有开始

\n

该作业处于挂起状态,等待跑步者挑选

\n
\n

如果我手动执行跑步者,工作就可以通过。

\n

gitlab-runner verify 命令显示:

\n
Runtime platform                                    arch=amd64 os=linux pid=24616 revision=d0b76032 version=12.0.2\nWARNING: Running in user-mode.                     \nWARNING: The user-mode requires you to manually start builds processing: \nWARNING: $ gitlab-runner run                       \nWARNING: Use sudo for system-mode:                 \nWARNING: $ sudo gitlab-runner...                   \n                                                   \nVerifying runner... is …
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-ci gitlab-ci-runner

12
推荐指数
3
解决办法
2万
查看次数

GitLab CI - 使用 !reference 标签重用规则

根据 GitLab 关于!reference tag 的CI 文档,它说:

使用 !reference 自定义 YAML 标签从其他作业部分选择关键字配置并在当前部分中重用它。与 YAML 锚点不同,您也可以使用 !reference 标签来重用包含的配置文件中的配置。

我们可以使用!reference 标签来重用rules或任何其他允许的关键字吗?

gitlab gitlab-ci gitlab-ci-runner

12
推荐指数
1
解决办法
2万
查看次数

在docker gitlab-ci-runner上运行docker-compose

我在Docker上运行了一个带有docker-compose for dev环境的项目.

我想通过gitlab-ci-multi-runner"Docker mode"实例在GitLabCI上运行它.

这是我的.gitlab-ci.yml文件:

image: soullivaneuh/docker-bash

before_script:
  - apk add --update bash curl
  - curl --silent --location https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  - chmod +x /usr/local/bin/docker-compose
  - ./configure
  - docker-compose up -d
Run Code Online (Sandbox Code Playgroud)

请注意,soullivaneuh/docker-bash图像只是安装了bash的docker镜像.

脚本docker-compose up -d命令失败:

gitlab-ci-multi-runner 0.7.2 (998cf5d)
Using Docker executor with image soullivaneuh/docker-bash ...
Pulling docker image soullivaneuh/docker-bash:latest ...

Running on runner-1ee5079f-project-3-concurrent-1 via sd-59984...
Fetching changes...
Removing app/config/parameters.yml
Removing docker-compose.env
HEAD is now at 5c5e7ff remove docker service
From https://git.dummy.net/project/project …
Run Code Online (Sandbox Code Playgroud)

docker gitlab-ci gitlab-ci-runner docker-compose

11
推荐指数
1
解决办法
4392
查看次数

Gitlab CI服务端口是如何暴露的?

我有一个.gitlab-ci.yml文件:

integration_test:
  services:
    - name: registry.gitlab.com/group/project/testmailserver:1.1
      alias: "mail.email"
  stage: test
  script:
    - ./gradlew -g /cache/.gradle --stacktrace --info integrationTest
Run Code Online (Sandbox Code Playgroud)

该服务是基于此的完整堆栈电子邮件服务器:tvial/docker-mailserver:latest.在我的docker-compose配置本地,我能够运行它并连接到它.

version: '2'

services:
  mail:
    image: registry.gitlab.com/group/project/testmailserver:1.1
    hostname: mail
    domainname: localhost
    ports:
      - "25:25"
      - "143:143"
      - "587:587"
      - "993:993"
    environment:
      - ONE_DIR=1
      - DMS_DEBUG=0
      - MAIL_USER=invoicereader
      - MAIL_PASS=invoicereader
    cap_add:
      - NET_ADMIN
Run Code Online (Sandbox Code Playgroud)

如果我运行它docker-compose up并通过端口993上的IMAP连接到它,它工作正常.集成测试也顺利进行

但是,如果集成测试由gitlab CI执行,则会失败.我唯一能得到的例外是Connection拒绝.

可能是服务的端口没有正确暴露?CI服务器如何确定它必须向所述服务打开的端口?

使用CI运行时可能出现什么问题?我该如何以不同方式测试?

对不起,很多问题,我只是绝望地失去了..

continuous-integration imap docker gitlab-ci gitlab-ci-runner

11
推荐指数
2
解决办法
1789
查看次数

在 .gitlab-ci.yml 上找不到 curl 命令

我有一个 .gitlab-ci.yml 文件。它创建了一些 docker 镜像并将其推送到 AWS ECR。

当我运行 curl 命令将一些工件推送到远程存储库时,它显示 curl: not found。我已经在使用 openjdk 图像来做 ./gradlew 构建。不知道如何在 Gitlab runner 上安装 curl。

请指导。

curl gitlab docker gitlab-ci gitlab-ci-runner

11
推荐指数
2
解决办法
1万
查看次数

如何在 Gitlab 中成功的管道结束时创建合并请求?

我对 gitlab 和 gitlab CI 很陌生,我已经建立了一个成功完成的管道。我的主分支和开发分支受到保护,因此需要合并请求,以便组中的另一个开发人员可以在合并之前查看代码和注释。我想知道是否可以在此管道的末尾生成此合并请求。gitlab 存储库中是否有此设置,或者我是否必须创建脚本来实现此目的?
旁注:
就在发布这篇文章之前,我遇到了 gitlab 文档的这一部分,
我在 ubuntu 18.04 上使用了 gitlab-runner 11.0.0

git gitlab gitlab-ci-runner

11
推荐指数
2
解决办法
7762
查看次数

如何在 gitlab 中触发特定作业

我想在管道中运行特定作业,我认为为作业分配一个标签,然后在 post 方法中再次指定此标签将满足我的需求。问题是当我使用 api(post) 触发时,所有作业在管道中触发事件虽然只有一个标记为 .

gitlab-ci.yml :

job1: 脚本: - echo "helloworld!" 标签: [我的标签]

job2: 脚本: - echo "hello gitlab!"


api 调用: curl -X POST -F token="xxx" -F ref="myTag" https://gitlab.com/api/v4/projects/12345678/trigger/pipeline

tags post gitlab gitlab-ci gitlab-ci-runner

11
推荐指数
3
解决办法
1万
查看次数