10

ile AWS beanstalk üzerinde docker dağıtmak AWS beanstalk üzerinde birden çok node.js mikro hizmet dağıtmak çalışıyorum ve bunların aynı örnek üzerinde dağıtılmasını istiyorum. Birden fazla hizmeti dağıtmak için ilk defa, bu yüzden bana yardımcı olacak birine ihtiyacım olan bazı aksaklıklar var. Bu yüzden önce onları bir docker kabında paketlemeye çalıştım. Bu arada yapıyı yönetmek için docker besteciyi kullanıyorum. Sanal makinemde yerel olarak çalışıyor ve çalışıyor, ancak bunu fasulyeye yerleştirdiğimde birkaç sorunla karşılaştım.Docker besteci

biliyorum Ne:

  1. ben çok konteyner liman işçisi olarak dağıtmak için seçim yapmak zorunda biliyorum.
  2. Birden çok node.js hizmetini yönetmenin en iyi uygulaması, docker bestecisini kullanıyor.
  3. node.js uygulaması için dockerrun.aws.json'a ihtiyacım var.
  4. Bu ecs örneği için görev tanımı oluşturmam gerekiyor. Ben problem

:

  1. Ben sadece php için dockerrun.aws.json ve task_definition.json şablonu bulabilirsiniz, bu nedenle bu iki json dosyalarda node.js benim yapılandırma ise doğrulayamıyorum doğru şekil
  2. docker-compose.yml, dockerrun.aws.json ve task_definition.json benzer işleri yapıyor gibi görünüyor. task_definition'ı tutmalıyım, ama yine de dockerrun.aws.json'a ihtiyacım var mı?
  3. Görevleri ecs içinde çalıştırmayı denedim, ancak hemen durdu. Görev için günlüğü nasıl kontrol edebilirim?

I got: çevre

bulundu

yok ecs görev tanımı (veya boş tanım dosyası) benim görev hep derhal duracaktır çünkü. Günlüğü kontrol edebilirsem, çekim yapmakta zorluk çekerim. İşte

olan benim task_definition.json:

Ben benzer bir sorun vardı ve bu nedenle bana Archive.zip dosyasında bu yapıyı vererek, benim Archive.zip dosyasında doğrudan içeren klasörü arşivlenmiş çıktı
{ 
    "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

Belki bu https://github.com/ingenieux/beanstalker/issues/63 – taco

+0

@taco yardımcı olacaktır gerekiyordu, ama belki yanı sıra bu konuyla ilgili sorunumu izleyiciye gönderiyorum, teşekkürler. –

+0

Ve onların beanstalker kullanmıyorum –

cevap

3

: o (klasörün kendisini değil) sadece RootFolder içeriğini arşivleme, Amazon Beanstalk ECS Görev Tanımı dosyasını tanıdığını ortaya çıktı

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

.

Bu yardımcı olur umarım.

1

Benzer sorun. Benim için ne tamir ettiyse, sadece eb deploy çalıştıran, kendimi sıkıştırmak yerine CLI araçlarını kullanıyordum.

0

Bana göre, bu dosya AWS documentation'da açıklandığı gibi tam kasa ile eşleşen dosyanın adının sağlanmasıydı.

dockerfile.aws.json

bu tam aradığım şey değil, tam Dockerfile.aws.json