簡體   English   中英

Gitlab CI 失敗並出現錯誤:作業失敗:退出代碼 1

[英]Gitlab CI fails with ERROR: Job failed: exit code 1

我是 gitlab ci 的新手,我有一個項目,該項目具有預先存在的 gitlab 配置,運行良好,但在進行了一些代碼更改后,它現在完全停止工作,我不明白為什么。 這是.gitlab-ci.yml

stages:
  - build
  - deploy

variables:
  DOCKER_HOST: tcp://localhost:2375

assets:
  stage: build
  image: node:10-alpine
  script:
    - npm ci
    - NODE_ENV=production npm run build
  artifacts:
    expire_in: 1 day
    paths:
      - public/assets
  tags:
    - docker

package:
  stage: deploy
  image: php:7.3-cli-alpine
  dependencies:
    - assets
  before_script:
    - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    - php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
    - php composer-setup.php --install-dir=/usr/local/bin --filename=composer
    - php -r "unlink('composer-setup.php');"
  script:
    - composer install --prefer-dist --no-progress --optimize-autoloader --no-scripts
    - rm -fr .git
  artifacts:
    expire_in: 1 day
    paths:
      - .
  tags:
    - docker

docker:
  stage: deploy
  image: docker:latest
  services:
    - docker:18-dind
  dependencies:
    - assets
  script:
    - docker build -t $CI_REGISTRY_IMAGE:latest .
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
    - docker push $CI_REGISTRY_IMAGE:latest
  only:
    - master
  tags:
    - docker

deploy:
  stage: deploy
  image: php:7.3-cli-alpine
  dependencies:
    - assets
  before_script:
    - curl -LO https://deployer.org/deployer.phar
    - mv deployer.phar /usr/local/bin/dep
    - chmod +x /usr/local/bin/dep
    - apk add --update openssh rsync
    - eval $(ssh-agent -s)
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - ssh-keyscan -t rsa domain.co.uk >> /root/.ssh/known_hosts
  script:
    - dep deploy -p --tag="$CI_COMMIT_TAG"
  only:
    - tags
  tags:
    - docker

我一直收到以下錯誤,我想知道發生了什么變化,是服務器還是 gitlab-ci 導致了以下問題。 我檢查了服務器,它運行良好,但那里沒有安裝 docker,我認為 docker 不應該安裝在服務器上,因為它無論如何都想做什么?

Checking out a50d58fd as master...
 Skipping Git submodules setup
Downloading artifacts for assets (447059035)...
00:01
 Downloading artifacts from coordinator... ok        id=447059035 responseStatus=200 OK token=cp4GCzgJ
$ docker build -t $CI_REGISTRY_IMAGE:latest .
00:02
 time="2020-02-24T03:53:41Z" level=error msg="failed to dial gRPC: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: dial tcp [::1]:2375: connect: connection refused"
 error during connect: Post http://localhost:2375/v1.40/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&session=sja0dvuf6gm0w8tneigulo3ha&shmsize=0&t=registry.gitlab.com%2Fnir.npl%2Fbrayleys-honda%3Alatest&target=&ulimits=null&version=1: context canceled
 ERROR: Job failed: exit code 1

檢查這是否與一年前的這個線程相似:

似乎 docker 更新了他們最新的穩定圖像,而 gitlab 還沒有更新他們的跑步者,將圖像更改為 18 個主要修復這些問題,例如:

image: docker:18-git

variables:
  DOCKER_HOST: tcp://docker:2375/
  DOCKER_DRIVER: overlay2

services:
  - docker:18-dind

在你的情況下,一年后,那將是docker:19-dind ,特別是如果你使用image: docker:latest ,這不是一個好的做法,因為“最新”可以隨時變化。
image: docker:19-git會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM