标签: gitlab-ci-runner

GitLab-CI多跑者开始泊坞容器

我仍然不太了解gitlab-ci多跑者启动docker并与代码进行内部交互的过程.

是否有可能gitlab-ci多个运行器启动一个docker容器,其中包含此docker容器中的当前代码,然后针对此代码运行测试?(例如:代码掉落)

我基本上想要一个安装了各种挂钩的docker容器.GitLab-CI多跑者应该在主机系统上运行并按需启动docker容器.在docker容器内部,应该根据phpcs检查代码.

如何将repo代码放入docker容器?

谢谢您的帮助

gitlab docker gitlab-ci gitlab-ci-runner

6
推荐指数
1
解决办法
3024
查看次数

`test:first job:script应该是一个字符串或一个字符串数组

我想创建一个简单的"hello,world"Gitlab CI脚本.我已经让Docker转轮工作,我正在尝试这样的事情:

image: debian:sid

test:first:
  script:
  - true
Run Code Online (Sandbox Code Playgroud)

不幸的是,构建失败并出现错误: test:first job: script should be a string or an array of a strings

我究竟做错了什么?

gitlab gitlab-ci gitlab-ci-runner

6
推荐指数
1
解决办法
3149
查看次数

如何保存用于在Gitlab CI中执行构建的Docker容器?

我将Gitlab CI与使用Docker的运行程序结合使用。在Gitlab中一个项目的git仓库中,我放置了一个.gitlab-ci.yml文件。推送此文件将使运行程序根据我提供的Docker映像创建Docker容器。然后,它运行yml文件中规定的构建步骤。构建成功后,这将非常有效。

但是,当构建失败时,我希望能够在用于运行此构建的Docker容器中找到原因。这可能吗?

'docker ps'的输出显示该容器在构建期间正在运行,但是此后'docker ps -a'的输出显示该容器已被完全删除。有什么办法可以防止这种情况?

gitlab-ci gitlab-ci-runner

6
推荐指数
1
解决办法
652
查看次数

有可能在gitlab-ci中建立另一个分支到另一个目录吗?

我想用一个gitlab-runner来制作两个相似但不完全相同的版本。

git存储库中,我有几个分支:prod,test,dev。是否可以仅使用一个跑步者来构建不同的路径?

例如:

  • /home/gitlab-runner/builds/860ee11a/0/projectname -产品
  • /home/gitlab-runner/builds/860ee11a/1/projectname -测试
  • /home/gitlab-runner/builds/860ee11a/2/projectname -开发

如果是这样,您该怎么做?

git gitlab gitlab-ci gitlab-ci-runner

6
推荐指数
1
解决办法
7111
查看次数

GitLab CI Runner,如何在服务容器中使用卷或挂载

我使用GitLab CI Runner,它使用命令:

docker run -d --name postgres postgres:9.4
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

docker run -d --name postgres --volumes-from postgres_datastore postgres:9.4
Run Code Online (Sandbox Code Playgroud)

但GitLab CI Runner不支持任何选项(-v or --volumes-from).

还有其他方法吗?

docker gitlab-ci-runner

6
推荐指数
1
解决办法
9647
查看次数

GitLab Ci与docker runner - 多个阶段

我设置了我的第一个GitLab Ci Pipeline,包括docker来运行我的项目.我想把我的管道分成几个阶段,所以我创建了"build","test"和"clean-build".

在这种情况下一切正常:

stages:
  - build
  - test
  - clean

image: docker:latest

services:
  - docker:dind

before_script:
  - export RELEASE=${CI_BUILD_REF_NAME}
  - docker version

build:
  stage: build
  tags:
    - sendis-dind
  script:
  - echo "Hallo in Build Stage"

test:
  stage: test
  tags:
    - sendis-dind
  script:
    - echo "Hallo in TEST Stage"

clean-build:
  stage: clean
  tags:
    - sendis-dind
  script:
    - echo "Hallo beim Clean Up"
  when: always
Run Code Online (Sandbox Code Playgroud)

所有3个阶段都成功运行

但这失败了:

stages:
  - build
  - test
  - clean

image: docker:latest

services:
  - docker:dind

before_script:
  - …
Run Code Online (Sandbox Code Playgroud)

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

6
推荐指数
1
解决办法
1218
查看次数

Docker中的GitLab CI docker无法创建卷

我在docker中使用docker来托管我的容器,因为它们在管道中工作.我从我的代码创建的容器被设置为具有将gcloud密钥传递给容器的卷.这在我的本地机器上完美运行,但在gitlab-runner上它没有正确链接.

从阅读来看,这似乎是因为它将主机链接到我的容器,而不是将dind主机链接到我的容器.

如何将dind内的目录链接到我的容器?

(还要忽略标记等任何小问题,这个ci文件在开发的早期阶段)

GitLab ci如下

image: docker:latest
services:
  - docker:dind


variables:
  DOCKER_DRIVER: overlay2
  SPRING_PROFILES_ACTIVE: gitlab-ci
  CONTAINER_TEST_IMAGE: registry.gitlab.com/fdsa
  CONTAINER_RELEASE_IMAGE: registry.gitlab.com/asdf

stages:
  - build_test_image
  - deploy

.docker_login: &docker_login | # This is an anchor
     docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com

build test image:
    stage: build_test_image
    script:
      - *docker_login
      - docker build -t $CONTAINER_TEST_IMAGE .
      - docker push $CONTAINER_TEST_IMAGE

test run:
    stage: deploy
    script:
        - *docker_login
        - mkdir /key
        - echo $GCP_SVC_KEY > /key/application_default_credentials.json
        # BROKEN LINE HERE
        - docker run …
Run Code Online (Sandbox Code Playgroud)

docker gitlab-ci gitlab-ci-runner

6
推荐指数
2
解决办法
1838
查看次数

在Gitlab秘密变量中逃脱char

我有一个秘密var:

在此输入图像描述

但是当我这样做时- echo %MySecretVar%,跑步者foo才会显示

我怎样才能逃脱像!Gitlab Secret Vars 这样的特殊角色?

gitlab gitlab-ci gitlab-ci-runner

6
推荐指数
1
解决办法
1746
查看次数

./deploy.sh没有在gitlab ci上工作

我的问题是bash脚本我创建了这个错误"/ bin/sh的:EVAL:行88:./deploy.sh:未找到"上gitlab.下面是我的示例脚本.gitlab-ci.yml.

我怀疑gitlab ci不支持bash脚本.

image: docker:latest

variables:
  IMAGE_NAME: registry.gitlab.com/$PROJECT_OWNER/$PROJECT_NAME
  DOCKER_DRIVER: overlay

services:
  - docker:dind

stages:
  - deploy

before_script:
 - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
 - docker pull $IMAGE_NAME:$CI_BUILD_REF_NAME || true

production-deploy:
  stage: deploy
  only:
    - master@$PROJECT_OWNER/$PROJECT_NAME
  script:
    - echo "$PRODUCTION_DOCKER_FILE" > Dockerfile
    - docker build --cache-from $IMAGE_NAME:$CI_BUILD_REF_NAME -t $IMAGE_NAME:$CI_BUILD_REF_NAME .
    - docker push $IMAGE_NAME:$CI_BUILD_REF_NAME
    - echo "$PEM_FILE" > deploy.pem
    - echo "$PRODUCTION_DEPLOY" > deploy.sh
    - chmod 600 deploy.pem
    - chmod 700 deploy.sh
    - ./deploy.sh …
Run Code Online (Sandbox Code Playgroud)

bash continuous-integration gitlab gitlab-ci gitlab-ci-runner

6
推荐指数
3
解决办法
7466
查看次数

如何解决“远程:您不允许上载代码”。GitLab CI / CD作业出错?

我目前正在尝试使用GitLab运行CI / CD作业,该作业运行一个Python文件,该文件对特定的存储库进行更改,然后提交并将这些更改推送到master。在存储库中,我还担任过Master的角色。看来,所有git功能运行正常除外git push,这导致fatal: You are not currently on a branch.与使用git push origin HEAD:master --force,这导致fatal: unable to access 'https://gitlab-ci-token:xxx@xxx/project.git/': The requested URL returned error: 403。我一直在寻找在线解决方案,一个是这个,另一个是不保护它,而我现在还找不到。这也是GitLab存储库中的一个子项目。

现在,这几乎就是我的.gitlab-ci.yml模样。

before_script:
  - apt-get update -y
  - apt-get install git -y
  - apt-get install python -y
  - apt-get python-pip -y

main:
  script:
    - git config --global user.email "xxx@xxx"
    - git config --global user.name "xxx xxx"
    - git config --global …
Run Code Online (Sandbox Code Playgroud)

python linux gitlab gitlab-ci gitlab-ci-runner

6
推荐指数
3
解决办法
2577
查看次数