10

Ich versuche, mehrere node.js-Micro-Services in AWS-Beanstalk bereitzustellen, und ich möchte, dass sie auf derselben Instanz bereitgestellt werden. Es ist das erste Mal, dass ich mehrere Dienste bereitstelle, daher gibt es einige Fehler. Ich brauche jemanden, der mir hilft. Also habe ich zuerst versucht, sie in einen Andock-Container zu packen. Inzwischen verwende ich Docker Composer, um die Struktur zu verwalten. Es läuft lokal und läuft lokal in meiner virtuellen Maschine, aber als ich es auf Bohnenstange entfaltete, traf ich ein paar Probleme.Bereitstellen von Docker auf AWS-Beanstalk mit Docker-Composer

Was ich weiß:

  1. Ich weiß, ich habe zu wählen als Multi-Container Docker einzusetzen.
  2. Die beste Methode zum Verwalten mehrerer node.js-Dienste ist die Verwendung von docker composer.
  3. Ich brauche eine dockerrun.aws.json für node.js App.
  4. Ich muss Task Definition für diese ecs-Instanz erstellen.

Wo ich Probleme haben:

  1. kann ich nur dockerrun.aws.json und task_definition.json Vorlage für php finden, so kann ich nicht überprüfen, ob meine Konfiguration für node.js in diesen beiden json-Dateien sind in korrekte Form.
  2. Es scheint wie docker-compose.yml, dockerrun.aws.json und task_definition.json tun ähnliche Jobs. Ich muss task_definition behalten, aber brauche ich noch dockerr.aws.json?
  3. Ich habe versucht, die Aufgabe in ecs auszuführen, aber es hat sofort aufgehört. Wie kann ich das Protokoll für die Aufgabe überprüfen?

Ich habe:

Keine ecs Aufgabendefinition (oder leere Definitionsdatei) in Umgebung

gefunden, weil meine Aufgabe immer sofort stoppen. Wenn ich das Protokoll überprüfen kann, ist es für mich viel einfacher, Fehler zu machen. Hier

ist mein task_definition.json:

{ 
    "requiresAttributes": [], 
    "taskDefinitionArn": "arn:aws:ecs:us-east-1:231440562752:task-definition/ComposerExample:1", 
    "status": "ACTIVE", 
    "revision": 1, 
    "containerDefinitions": [ 
    { 
     "volumesFrom": [], 
     "memory": 100, 
     "extraHosts": null, 
     "dnsServers": null, 
     "disableNetworking": null, 
     "dnsSearchDomains": null, 
     "portMappings": [ 
     { 
      "hostPort": 80, 
      "containerPort": 80, 
      "protocol": "tcp" 
     } 
     ], 
     "hostname": null, 
     "essential": true, 
     "entryPoint": null, 
     "mountPoints": [ 
     { 
      "containerPath": "/usr/share/nginx/html", 
      "sourceVolume": "webdata", 
      "readOnly": true 
     } 
     ], 
     "name": "nginxexpressredisnodemon_nginx_1", 
     "ulimits": null, 
     "dockerSecurityOptions": null, 
     "environment": [], 
     "links": null, 
     "workingDirectory": null, 
     "readonlyRootFilesystem": null, 
     "image": "nginxexpressredisnodemon_nginx", 
     "command": null, 
     "user": null, 
     "dockerLabels": null, 
     "logConfiguration": null, 
     "cpu": 99, 
     "privileged": null 
    } 
    ], 
    "volumes": [ 
    { 
     "host": { 
     "sourcePath": "/ecs/webdata" 
     }, 
     "name": "webdata" 
    } 
    ], 
    "family": "ComposerExample" 
} 
+0

Vielleicht ist dies https://github.com/ingenieux/beanstalker/issues/63 – taco

+0

@taco helfen wird, ist dies nicht genau das, was ich suche, aber ich könnte sowie mein Problem in diesem Problem Tracker, danke. –

+0

Und ich benutze ihren Bohnenpirscher nicht –

Antwort

3

Ich hatte ein ähnliches Problem, und es stellte sich heraus, dass ich den Übergeordneten Ordner direkt in meine Archive.zip Datei archiviert, so dass mir diese Struktur in der Archive.zip Datei geben :

RootFolder 
    - Dockerrun.aws.json 
    - Other files... 

Es stellte sich heraus, dass durch die Archivierung der RootFolder Inhalt nur (und nicht den Ordner selbst), Amazon ECS die Bohnenstange Aufgabendefinition-Datei erkannt.

Hoffe, das hilft.

1

Ähnliche Probleme. Was es für mich behoben hat, war die Verwendung der CLI-Tools, anstatt mich selbst zu zippen, einfach ausgeführt eb deploy funktionierte.

0

Für mich war es einfach nur sicherzustellen, dass der Name der Datei dem exakten Gehäuse entsprach, wie in der AWS documentation beschrieben.

dockerfile.aws.json hatte genau Dockerfile.aws.json

Verwandte Themen