2017-06-09 6 views
0

Ich versuche DockerLatentWorker in buildbot zu machen work.But bisher buildbot immer stecken bleibt stundenlang auf die Vorbereitung Arbeiter Bühne. Diese ist der Ausgang zu diesem Zeitpunkt auf dem TerminalBuildbot stecken auf Arbeiter Bühne mit DockerLatentWorker Vorbereitung

2017-06-09 14:16:55+0000 [-] starting build <Build runtests number:None results:success> using worker <LatentWorkerForBuilder builder=u'runtests' worker=u'example-worker' state=AVAILABLE> 2017-06-09 14:16:55+0000 [-] <Build runtests number:None results:success>.startBuild 2017-06-09 14:16:57+0000 [-] acquireLocks(worker <DockerLatentWorker u'example-worker'>, locks []) 2017-06-09 14:16:57+0000 [-] substantiating worker <LatentWorkerForBuilder builder=u'runtests' worker=u'example-worker' state=DETACHED> 2017-06-09 14:16:58+0000 [-] Container created, Id: b6eb4d... 2017-06-09 14:16:58+0000 [-] Container started Für Master I https://hub.docker.com/r/buildbot/buildbot-master/~/dockerfile/ Diese dockerfile modifizierte Andockfensters-Py Abhängigkeit hinzuzufügen.

Ich verwende buildbot 0.9.7 mit Docker Version 17.03.1-ce, bauen c6d412e.

Hier ist meine master.cfg Datei (Schnipsel davon)

from buildbot.plugins import * 
c = BuildmasterConfig = {} 

####### WORKERS 

c['workers'] = [ 
    worker.DockerLatentWorker('example-worker', 'password', 
         docker_host='tcp://10.29.21.172:2375', 
         image='buildbot/buildbot-worker:master') 
] 

c['protocols'] = {'pb': {'port': 9989}} 

####### CHANGESOURCES 

c['change_source'] = [] 
c['change_source'].append(changes.GitPoller(
     'git://github.com/buildbot/pyflakes.git', 
     workdir='gitpoller-workdir', branch='master', 
     pollinterval=300)) 

####### SCHEDULERS 

c['schedulers'] = [] 
c['schedulers'].append(schedulers.SingleBranchScheduler(
          name="all", 
         change_filter=util.ChangeFilter(branch='master'), 
          treeStableTimer=None, 
          builderNames=["runtests"])) 
c['schedulers'].append(schedulers.ForceScheduler(
          name="force", 
          builderNames=["runtests"])) 


c['builders'] = [] 
c['builders'].append(
    util.BuilderConfig(name="runtests", 
    workernames=["example-worker"], 
    factory=factory)) 

####### PROJECT IDENTITY 

c['title'] = "Pyflakes" 
c['titleURL'] = "https://launchpad.net/pyflakes" 
c['buildbotURL'] = "http://localhost:8010/" 
c['www'] = dict(port=8010, 
      plugins=dict(waterfall_view={}, console_view={})) 

####### DB URL 

c['db'] = { 
    'db_url' : "sqlite:///state.sqlite", 
} 

ich meine Docker-Daemon konfiguriert haben tcp zu hören: //0.0.0.0: 2375 auch, und das zog auch die buildbot/buildbot-worker: Hauptbild. Hier

ist der Screenshot von Buildbot

Screenshot

kann ich nicht herausfinden, wo das Problem ist.

Antwort

0

Die Docker-Vorbereitung sollte einige hundert Millisekunden dauern, solange das Docker-Image auf dem System vorhanden ist. Keine Notwendigkeit, stundenlang zu warten. Es gibt eine Reihe von Gründen, warum Sie den Docker Worker nicht starten.

  • Der Worker-Container kann nicht auf den Container-Worker-TCP-Port des Masters zugreifen.
  • der Container Arbeiter kann nicht bei allen

starten Sie den Parameter followStartupLogs DockerLatentWorker debug verwenden = True auf der der Master die Protokolle der Arbeiter zeigen haben innen twisted.log

+0

'Anschluss an 94e7f6672af6: 9989 fehlgeschlagen : [Fehlerinstanz: Traceback (Fehler ohne Frames): : DNS-Suche fehlgeschlagen: 94e7f6672af6.' –

+0

Es scheint statt Host-IP die Docker-Container-ID wird als Host gespeichert –