标签: gitlab-ci-runner

Docker:exec /usr/bin/sh:exec 格式错误

我创建了一个自定义 docker 映像并将其推送到 docker hub,但是当我在 CI/CD 中运行它时,它给了我这个错误。

exec /usr/bin/sh: exec format error

在哪里 :

Dockerfile

FROM ubuntu:20.04
RUN apt-get update
RUN apt-get install -y software-properties-common
RUN apt-get install -y python3-pip
RUN pip3 install robotframework
Run Code Online (Sandbox Code Playgroud)

.gitlab-ci.yml

robot-framework:
  image: rethkevin/rf:v1
  allow_failure: true
  script:
    - ls
    - pip3 --version
Run Code Online (Sandbox Code Playgroud)

输出

Running with gitlab-runner 15.1.0 (76984217)
  on runner zgjy8gPC
Preparing the "docker" executor
Using Docker executor with image rethkevin/rf:v1 ...
Pulling docker image rethkevin/rf:v1 ...
Using docker image sha256:d2db066f04bd0c04f69db1622cd73b2fc2e78a5d95a68445618fe54b87f1d31f for rethkevin/rf:v1 with digest rethkevin/rf@sha256:58a500afcbd75ba477aa3076955967cebf66e2f69d4a5c1cca23d69f6775bf6a …
Run Code Online (Sandbox Code Playgroud)

gitlab docker gitlab-ci dockerhub gitlab-ci-runner

109
推荐指数
5
解决办法
19万
查看次数

GitLab CI的多行YAML字符串(.gitlab-ci.yml)

我正在尝试编写一个gitlab-ci.yml使用多行字符串作为命令的文件.但是,它似乎没有被解析.我都试过了- |,并- >用相同的结果.

stages:
  - mystage

Build:
  stage: mystage
  script:
    - |
        echo -e "
            echo 'hi';
            echo 'bye';
        "
Run Code Online (Sandbox Code Playgroud)

当它尝试运行时,它只显示echo -e '要运行的脚本,而不是整个多行字符串.这给我带来了问题.

写这样的东西的正确语法是什么?

yaml gitlab-ci gitlab-ci-runner

56
推荐指数
5
解决办法
4万
查看次数

如何为gitlab ci runner启用maven工件缓存?

我们使用gitlab ci和共享运行器来进行持续集成.对于每个构建,运动员下载大量的maven工件.

有没有办法配置gitlab ci来缓存这些工件,这样我们可以通过阻止一遍又一遍地下载相同的工件来加快构建过程?

maven gitlab-ci gitlab-ci-runner gitlab-8

43
推荐指数
5
解决办法
3万
查看次数

如何仅在标记分支上运行gitlab-ci.yml作业?

如何仅在标记的Master分支上运行.gitlab-ci.yml作业?

job:
  script:
  - echo "Do something"
  only:
  - master
  - tags
Run Code Online (Sandbox Code Playgroud)

如果存在任何条件,则上述代码将运行:主分支或标记的提交.

我的目标是让这个生产部署运行,但它需要它在Master分支上并且它被标记(带有版本).否则,我将有另一个工作,如果它缺少一个标签将推送到暂存.

gitlab gitlab-ci gitlab-ci-runner

42
推荐指数
7
解决办法
3万
查看次数

如何删除/取消注册 GitLab 运行程序

几个月前我注册了一个个人 GitLab 运行器,但我不再使用它。如何完全删除它,使其不会显示在我的 GitLab CI/CD 设置页面上?

gitlab-ci gitlab-ci-runner

42
推荐指数
4
解决办法
8万
查看次数

获取GitLab CI以克隆私有存储库

我设置了GitLab和GitLab CI来托管和测试我的一些私人回购.对于我在这个系统下的作曲家模块,我设置了Satis来解析我的私人包.

显然这些私有包需要一个ssh密钥来克隆它们,我在终端中工作 - 我可以运行composer install并获取这些包,只要我ssh-add在shell中添加了密钥.

但是,当在GitLab CI中运行我的测试时,如果项目具有任何这些依赖项,则测试将无法完成,因为我的GitLab实例需要身份验证才能获得deps(显然),并且测试失败了Host key verification failed.

我的问题是如何设置它以便当跑步者运行测试时它可以在没有密码的情况下对gitlab进行身份验证?我已经尝试在我的runners ~/.ssh文件夹中放置一个无密码的ssh-key ,但是构建甚至不会添加密钥,"eval ssh-agent -s"后面跟ssh-add似乎没有说代理没有运行...

ssh continuous-integration gitlab gitlab-ci gitlab-ci-runner

38
推荐指数
5
解决办法
2万
查看次数

我怎样才能让gitlab-ci-runner的DinD图像缓存中间图像?

我有一个Dockerfile,从安装texlive-full软件包开始,这是一个巨大的,需要很长时间.如果我docker build在本地,安装后创建的中间图像被缓存,后续构建很快.

但是,如果我推送到我自己的GitLab安装并启动GitLab-CI构建运行器,这似乎总是从头开始,重新下载FROM映像,再次执行apt-get安装.这对我来说似乎是一个巨大的浪费,所以我试图弄清楚如何让GitLab DinD图像在构建之间缓存中间图像,到目前为止没有运气.

我已经使用了尝试--cache-dir,并--docker-cache-dirgitlab-runner register命令,都无济于事.

这甚至是gitlab-runner DinD图像应该能够做到的吗?

我的.gitlab-ci.yml:

build_job:
    script:
    - docker build --tag=example/foo .
Run Code Online (Sandbox Code Playgroud)

我的Dockerfile:

FROM php:5.6-fpm
MAINTAINER Roel Harbers <roel.harbers@example.com>
RUN apt-get update && apt-get install -qq -y --fix-missing --no-install-recommends texlive-full
RUN echo Do other stuff that has to be done every build.
Run Code Online (Sandbox Code Playgroud)

我使用GitLab CE 8.4.0和gitlab/gitlab-runner:latest作为跑步者

docker run -d --name gitlab-runner --restart always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /usr/local/gitlab-ci-runner/config:/etc/gitlab-runner \
    gitlab/gitlab-runner:latest \
; …
Run Code Online (Sandbox Code Playgroud)

gitlab docker gitlab-ci gitlab-ci-runner

36
推荐指数
1
解决办法
9633
查看次数

这项工作陷入困境,因为该项目没有在线分配任何跑步者.转到"跑步者"页面

我正在学习CI/CD.

我已经安装了来自Officicals的Gitlab和Gitlab Runner.但是,无论何时在maven-build期间运行管道,工作都会被卡住.我已经注册了跑步者并可以参加我的项目,但是工作陷入困境

.gitlab-ci.yml

image: docker:latest
services:
- docker:dind

variables:
 DOCKER_DRIVER: overlay
 SPRING_PROFILES_ACTIVE: gitlab-ci

stages:
- build
- package
- deploy

maven-build:
 image: maven:3-jdk-8
 stage: build
 script: "mvn package -B"
 artifacts:
 paths:
  - target/*.jar

docker-build:
stage: package
script:
 - docker build -t registry.com/ci-cd-demo .
 - docker push registry.com/ci-cd-demo

k8s-deploy:
 image: google/cloud-sdk
 stage: deploy
 script:
  - echo "$GOOGLE_KEY" > key.json
  - gcloud container clusters get-credentials standard-cluster-demo -- 
  zone us-east1-c --project ascendant-study-222206
   - kubectl apply -f deployment.yml
Run Code Online (Sandbox Code Playgroud)

我的跑步者设置

我的分享亚军

我的项目选手

跑步者已与项目关联时出现错误消息

Jo错误消息

请帮忙?

continuous-integration gitlab gitlab-ci-runner

33
推荐指数
4
解决办法
2万
查看次数

更改Gitlab CI Runner用户

目前,当我在GitlabCI中开始构建时,它在gitlab-runner用户下运行.我想将其改为公司的内部用户.我没有找到/etc/gitlab-runner/config.toml的任何参数来解决这个问题.

我目前的配置:

concurrent = 1
[[runners]]
  name = "deploy"
  url = ""
  token = ""
  executor = "shell"
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-ci gitlab-ci-runner

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

.gitlab-ci.yml 中的规则条件是否有 AND 选项?

我想创建一些嵌套条件:当它是合并或合并请求并且以特定名称启动“功能”时,我需要此管道才能工作。那么,作业的“唯一”选项中是否有 AND 条件?

logic gitlab-ci gitlab-ci-runner

31
推荐指数
1
解决办法
5万
查看次数