2016-12-12 9 views
3

DC/OSインストールでlocalhostで再生しています。すべて正常に動作しますが、私はプライベートレポの内側にあるドッカーイメージを実行しているようには見えません。私はクロノスと通信するためのpythonを使用しています:Chronosは専用のDockerコンテナを実行できません

@celery.task(name='add-job', soft_time_limit=5) 
def add_job(job_id): 
    job_document = mongo.jobs.find_one({ 
     '_id': job_id 
    }) 

    if job_document: 
     worker_document = mongo.workers.find_one({ 
      '_id': job_document['workerId'] 
     }) 

     if worker_document: 
      job = { 
       'async': True, 
       'name': job_document['_id'], 
       'owner': '[email protected]', 
       'command': "python /code/run.py", 
       "disabled": False, 
       "shell": True, 
       "cpus": worker_document['cpus'], 
       "disk": worker_document['disk'], 
       "mem": worker_document['memory'], 
       'schedule': 'R1//PT300S',# start now, 
       "epsilon": "PT60M", 
       "container": { 
        "type": "DOCKER", 
        "forcePullImage": True, 
        "image": "quay.io/username/container", 
        "network": "HOST", 
        "volumes": [{ 
         "containerPath": "/images/", 
         "hostPath": "/images/", 
         "mode": "RW" 
        }] 
       }, 
       "uris": [ 
        "file:///images/docker.tar.gz" 
       ] 
      } 
      return chronos_client.add(job) 
     else: 
      return 'worker not found' 
    else: 
     return 'job not found' 

ジョブが公衆画像(alpine:latest)と罰金実行されますが、それはDCOSインストール内部エラーなしで失敗します。

ジョブは実行されますが、すぐに失敗します。クロノス内のジョブのエラーログは次のようになります。

I1212 12:39:11.141639 25058 fetcher.cpp:498] Fetcher Info: {"cache_directory":"\/tmp\/mesos\/fetch\/slaves\/61d6d037-c9f5-482b-a441-11d85554461b-S1\/root","items":[{"action":"BYPASS_CACHE","uri":{"cache":false,"executable":false,"extract":false,"value":"file:\/\/\/images\/docker.tar.gz"}}],"sandbox_directory":"\/var\/lib\/mesos\/slave\/slaves\/61d6d037-c9f5-482b-a441-11d85554461b-S1\/docker\/links\/7029bbea-4c3d-439a-8720-411f6fe40eb9","user":"root"} 
I1212 12:39:11.143575 25058 fetcher.cpp:409] Fetching URI 'file:///images/docker.tar.gz' 
I1212 12:39:11.143587 25058 fetcher.cpp:250] Fetching directly into the sandbox directory 
I1212 12:39:11.143602 25058 fetcher.cpp:187] Fetching URI 'file:///images/docker.tar.gz' 
I1212 12:39:11.143612 25058 fetcher.cpp:167] Copying resource with command:cp '/images/docker.tar.gz' '/var/lib/mesos/slave/slaves/61d6d037-c9f5-482b-a441-11d85554461b-S1/docker/links/7029bbea-4c3d-439a-8720-411f6fe40eb9/docker.tar.gz' 
I1212 12:39:11.146726 25058 fetcher.cpp:547] Fetched 'file:///images/docker.tar.gz' to '/var/lib/mesos/slave/slaves/61d6d037-c9f5-482b-a441-11d85554461b-S1/docker/links/7029bbea-4c3d-439a-8720-411f6fe40eb9/docker.tar.gz' 

Stdoutが空です。同じ設定のアプリケーションとしてマラソンの内部で直接実行され、認証が機能し、画像がダウンロードされます。&が実行されました。これはクロノスがサポートしていないものですか?それは...私が意味する必要があり、それがドッキングウィンドウのためのコマンド...

アップデートを持っている:私はそれでアーカイブを試してみましたFailed to run 'docker -H unix:///var/run/docker.sock pull quay.io/username/container': exited with status 1; stderr='Error: Status 403 trying to pull repository username/container: "{\"error\": \"Permission Denied\"}"

がconfig.jsonだ:私はこれを見つけたより深いエージェントのログを掘り下げますコマンドラインからトリガされたときにダウンロードすることができます。私はちょうどchronosがそれを適切に使用していない理由を理解していないようです。私はこれ以外の資格情報を置く方法に関する他の参考文献を見つけることができません。

答えて

4

判明したように、uris paramは取り込みに有利ではなくなりました。私はクロノスに適用されたマラソン設定で最初から始め、これを見たときに慎重にログを見ました:{'message': 'Tried to add both uri (deprecated) and fetch parameters on aBPepwhG5z33e4teG', 'status': 'Bad Request'}。次に、私のウイリスパラメータを次のように変更しました:

"fetch": [{ 
    "uri": "/images/docker.tar.gz", 
    "extract": True, 
    "executable": False, 
    "cache": False 
}] 

...

0

投稿はthis oneのように少し見えましたが、これはボリュームに問題があることが判明しました。

関連する問題