5

Ich bin neu in Google Cloud und ich versuche, meine erste Bereitstellung zu tun. Meine erste Bereitstellung ist ein Ruby on Rails-Projekt.Jedes Mal, wenn ich versuche zu deploy ich bekomme - (gcloud.preview.app.deploy) Fehlerantwort: [4] DEADLINE_EXCEEDED

Ich bin im Grunde folgende this guide in the google cloud documentation. Der einzige Unterschied ist, dass ich mein eigenes Projekt anstelle des von ihnen gelieferten Projekts "Hallo Welt" verwende.

Dies ist meine Datei app.yaml

runtime: custom 
vm: true 
entrypoint: bundle exec rackup -p 8080 -E production config.ru 
resources: 
    cpu: 0.5 
    memory_gb: 1.3 
    disk_size_gb: 10 

Als ich zu meinem Projektverzeichnis gehen und laufen gcloud preview app deploy den deploy beginnt aber erscheint, um schließlich Zeit. Es gibt den Fehler (gcloud.preview.app.deploy) Error Response: [4] DEADLINE_EXCEEDED.

Bei einigen Nachforschungen habe ich festgestellt, dass das Laufen gcloud preview app deploy mit --verbosity debug zusätzliche Debug-Informationen liefert, aber es hilft mir nicht zu finden, was es zu einem Timeout führt.

Hier ist der letzte Teil des Konsolenprotokolls.

Bundle complete! 35 Gemfile dependencies, 102 gems now installed. 
Bundled gems are installed into ./vendor/bundle. 
Post-install message from rdoc: 
Depending on your version of ruby, you may need to install ruby rdoc/ri data: 

<= 1.8.6 : unsupported 
= 1.8.7 : gem install rdoc-data; rdoc-data --install 
= 1.9.1 : gem install rdoc-data; rdoc-data --install 
>= 1.9.2 : nothing to do! Yay! 
Post-install message from compass: 
    Compass is charityware. If you love it, please donate on our behalf at http://umdf.org/compass Thanks! 
DEBUG: Operation [operations/build/guidir-1286/MmFkZjNmOGYtZDhhZi00NTJmLTk0YWEtMmQzMjBmM2JkOTg2OlVT] complete. Result: { 
    "metadata": { 
     "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata", 
     "build": { 
      "finishTime": "2016-04-20T01:55:44.961635Z", 
      "status": "TIMEOUT", 
      "timeout": "600.000s", 
      "projectId": "guidir-1286", 
      "id": "2adf3f8f-d8af-452f-94aa-2d320f3bd986", 
      "source": { 
       "storageSource": { 
        "object": "us.gcr.io/guidir-1286/appengine/default.20160420t110030:latest", 
        "bucket": "staging.guidir-1286.appspot.com" 
       } 
      }, 
      "steps": [ 
       { 
        "args": [ 
         "us.gcr.io/guidir-1286/appengine/default.20160420t110030:latest" 
        ], 
        "name": "gcr.io/cloud-builders/dockerizer" 
       } 
      ], 
      "startTime": "2016-04-20T01:45:43.216420Z", 
      "logsBucket": "staging.guidir-1286.appspot.com", 
      "images": [ 
       "us.gcr.io/guidir-1286/appengine/default.20160420t110030:latest" 
      ], 
      "createTime": "2016-04-20T01:45:41.861657Z" 
     } 
    }, 
    "done": true, 
    "name": "operations/build/guidir-1286/MmFkZjNmOGYtZDhhZi00NTJmLTk0YWEtMmQzMjBmM2JkOTg2OlVT", 
    "error": { 
     "message": "DEADLINE_EXCEEDED", 
     "code": 4 
    } 
} 
DEBUG: (gcloud.preview.app.deploy) Error Response: [4] DEADLINE_EXCEEDED 
Traceback (most recent call last): 
    File "/Users/Robert/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 654, in Execute 
    result = args.cmd_func(cli=self, args=args) 
    File "/Users/Robert/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 1401, in Run 
    resources = command_instance.Run(args) 
    File "/Users/Robert/google-cloud-sdk/lib/surface/preview/app/deploy.py", line 507, in Run 
    config_cleanup) 
    File "/Users/Robert/google-cloud-sdk/lib/googlecloudsdk/api_lib/app/deploy_command_util.py", line 195, in BuildAndPushDockerImages 
    storage_client) 
    File "/Users/Robert/google-cloud-sdk/lib/googlecloudsdk/api_lib/app/deploy_command_util.py", line 245, in _BuildImagesWithCloudBuild 
    image.tag, cloudbuild_client) 
    File "/Users/Robert/google-cloud-sdk/lib/googlecloudsdk/api_lib/app/cloud_build.py", line 181, in ExecuteCloudBuild 
    retry_callback=log_tailer.Poll) 
    File "/Users/Robert/google-cloud-sdk/lib/googlecloudsdk/api_lib/app/api/operations.py", line 69, in WaitForOperation 
    encoding.MessageToPyValue(completed_operation.error))) 
OperationError: Error Response: [4] DEADLINE_EXCEEDED 
ERROR: (gcloud.preview.app.deploy) Error Response: [4] DEADLINE_EXCEEDED 

Dies ist die am weitesten sein gegangen, aber manchmal ist es auf halbem Weg durch die Edelsteine ​​vor der Installation mal und andere Zeiten ist es nicht einmal bis zu Installation, die Edelsteine ​​bekommt.

Wie kann ich dies verhindern?

Antwort

6

Es gibt eine 10-minütige Standard-Zeitüberschreitung für Docker-Builds (der Mechanismus, mit dem runtime: custom App Engine funktioniert). Sie können dies erhöhen, indem Sie gcloud config set app/cloud_build_timeout [NUMBER OF SECONDS] ausführen.

Sie könnten arbeiten um auch durch die sich die Durchführung bauen:

docker build . -t gcr.io/myapp/myimage 
gcloud docker push gcr.io/myapp/myimage 
gcloud preview app deploy app.yaml --image-url=gcr.io/myapp/myimage 

jedoch in der Regel baut Ihre Docker sollte dies nicht lange nehmen. Es ist normalerweise besser, ein Basis-Image zu haben, in dem alle Abhängigkeiten bereits enthalten sind, und nur den endgültigen Build von diesem Image abzuleiten und Ihre App zu installieren. Auf diese Weise werden deine Builds viel schneller sein.

+0

Danke für die Hilfe Ich bekomme nicht den Fehler 'Fehler Antwort: [2] Build fehlgeschlagen; check Build-Protokolle für Details "wenn ich' gcloud Preview-app-Module get-logs mymodule --version = 1 laufen lassen, um die Protokolle zu erhalten, kann ich nicht finden, wo die Protokolldatei gespeichert wird. Weißt du wo es wäre? – Rob