web-dev-qa-db-ja.com

Gitlab CI / Docker:ジョブにカスタムイメージを使用する

これが私がリンターテスト(eslint)を行う方法です。

linter:
  image: ubuntu:16.04
  stage: test
  tags:
    - testing
  before_script:
    - apt-get update -y
    - apt-get install nodejs-legacy -yqq
    - apt-get install curl -yqq
    - curl https://install.meteor.com/ | sh
    - meteor npm install eslint eslint-plugin-react
  script:
    - ./node_modules/.bin/eslint --ext .js --ext .jsx .

ただし、これを使用すると、すべてのテストでubuntuイメージにパッケージをインストールする必要があり、時間がかかります。

だから、まさにこれでイメージを作ろうと思いました。私はこのDockerfileを思いついた:

FROM ubuntu:16.04
RUN apt-get update -y
RUN apt-get install nodejs-legacy -yqq
RUN apt-get install curl -yqq
RUN apt-get clean && apt-get autoclean && apt-get autoremove
RUN curl https://install.meteor.com/ | sh

それから私はします

$ docker build -t linter-testing:latest .

そしてこのymlファイル:

linter:
  image: linter-testing:latest
  stage: test
  tags:
    - testing
  before_script:
    - meteor npm install eslint eslint-plugin-react
  script:
    - ./node_modules/.bin/eslint --ext .js --ext .jsx .

しかし、このエラーで失敗します:

ERROR: Job failed: Error response from daemon: repository linter-testing not found: does not exist or no pull access

では、なぜこの画像が存在しないのですか、althoug docker imagesその画像を正確に表示します...

12
user3142695

ランナーマシンのconfig.tomlにある/etc/gitlab-runnerファイルを次のように編集する必要があります。

[runners.docker]
  pull_policy = "if-not-present"

関連する問題を参照してください ここ

7
Jawad