2017-04-18 2 views
4

Dies ist, wie ich einige Lintertest (eslint).Gitlab CI/Docker: Verwenden Sie benutzerdefinierte Bild für Job

Aber damit muss jeder Test die Pakete auf dem Ubuntu-Image installieren, das braucht Zeit.

Also dachte ich, um ein Bild mit genau diesem zu bauen. Ich kam mit dieser Dockerfile up:

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 

Dann ich

$ docker build -t linter-testing:latest . 

und diese yml Datei:

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 . 

aber es funktioniert nicht mit diesem Fehler:

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

Also warum ist dieses Bild nicht vorhanden, obwohl docker images zeigt mir genau das Bild ...

Antwort

3

Sie benötigen config.toml Datei zu bearbeiten, die mit dem folgenden

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

verwandtes Thema Siehe here in /etc/gitlab-runner auf dem Läufer Maschine ist.

+0

Ich bin mir nicht sicher, wo ich die Toml-Datei erstellen soll. – user3142695

+0

Die Datei sollte in '/ etc/gitlab-runner' sein. Ich habe die Antwort mit dieser Info bearbeitet. – Jawad

+0

Es sollte schon existieren. Möglicherweise müssen Sie es jedoch als root bearbeiten. Finden Sie einfach den '[runners.docker]' Abschnitt und fügen Sie hinzu/ändern Sie 'pull_policy =" wenn-nicht-anwesend "' – Jawad

Verwandte Themen