我想在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+machine执行程序的gitlab runner 来启动AWS上的自动标量运行程序.我想在runners中使用docker-in-docker设置来构建容器,但我无法找到如何[runners.docker]为生成的runner 定义所需的属性以启用docker使用.
是否有可能以某种方式将一些配置信息传递给自动转换的跑步者?
我gitlab-ci.yml在我的Android项目中的文件中添加了缓存属性.
cache:
paths:
- .gradle/wrapper
- .gradle/caches
Run Code Online (Sandbox Code Playgroud)
但是在我运行的每个管道中./gradlew assemble,它会下载所有gradle依赖项,这会导致构建时间变慢.
我安装了特定的运行程序,并且状态为已激活。
\n我的 .gitlab-ci.ymi 文件代码:
\nstages:\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\nRun Code Online (Sandbox Code Playgroud)\n当我推送 master 分支时,gitlab-runner 正在运行,但它无限挂起\xe3\x80\x82
\n职位页面显示:
\n\n\n这项工作还没有开始
\n该作业处于挂起状态,等待跑步者挑选
\n
如果我手动执行跑步者,工作就可以通过。
\ngitlab-runner verify 命令显示:
\nRuntime 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 关于!reference tag 的CI 文档,它说:
使用 !reference 自定义 YAML 标签从其他作业部分选择关键字配置并在当前部分中重用它。与 YAML 锚点不同,您也可以使用 !reference 标签来重用包含的配置文件中的配置。
我们可以使用!reference 标签来重用rules或任何其他允许的关键字吗?
我在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) 我有一个.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
我有一个 .gitlab-ci.yml 文件。它创建了一些 docker 镜像并将其推送到 AWS ECR。
当我运行 curl 命令将一些工件推送到远程存储库时,它显示 curl: not found。我已经在使用 openjdk 图像来做 ./gradlew 构建。不知道如何在 Gitlab runner 上安装 curl。
请指导。
我对 gitlab 和 gitlab CI 很陌生,我已经建立了一个成功完成的管道。我的主分支和开发分支受到保护,因此需要合并请求,以便组中的另一个开发人员可以在合并之前查看代码和注释。我想知道是否可以在此管道的末尾生成此合并请求。gitlab 存储库中是否有此设置,或者我是否必须创建脚本来实现此目的?
旁注:
就在发布这篇文章之前,我遇到了 gitlab 文档的这一部分,
我在 ubuntu 18.04 上使用了 gitlab-runner 11.0.0
我想在管道中运行特定作业,我认为为作业分配一个标签,然后在 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