0

Ich benötige ein Post-Deployment-Skript für eine EB-App. Ich muss Befehle in einem Docker-Container in einer Docker-Umgebung mit mehreren Containern ausführen. Das Problem besteht darin, dass den Docker-Containern ein zufälliger Hash für den Containernamen zugewiesen wird.Benennen eines Docker-Containers mit Dockerrun.aws.json und Elastic Beanstalk

Ich habe gesucht und finde keine Informationen darüber, wie Sie einem Docker-Container während des Build- und Setup-Prozesses mit EB einen Namen zuweisen könnten.

Hat jemand einen Einblick in diese? Ich weiß mit Docker-Compose das ist kein Problem.

Antwort

0

die Container benennen kann getan werden, mit der Docker.aws.json Datei finden Sie in die

"containerDefinitions": [ 
    { 
     "name": "php-app", 
     "image": "php:fpm", 
     "environment": [ 
     { 
      "name": "Container", 
      "value": "PHP" 
     } 
     ], 
     "essential": true, 
     "memory": 128, 
     "mountPoints": [ 
     { 
      "sourceVolume": "php-app", 
      "containerPath": "/var/www/html", 
      "readOnly": true 
     } 
     ] 
    } 

Dies ist ein Beispiel von http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_v2config.html#create_deploy_docker_v2config_dockerrun

Sie können die Behälter in ähnlicher Weise nennen

+0

Ich habe das vor kurzem versucht, aber wenn 'docker ps' ausgeführt wird, ist der Name des Containers immer noch ein Hash. –

0

Obwohl Sie Container innerhalb von Dockerrun.aws.json benennen, benennt Bohnenranke sie immer noch mit einem bestimmten Hash, der Umgebungsnamen und ähnliches enthält. Aber es hat auch Namen von der Datei oben.

8a18a679564e XXXXXXXXXX.dkr.ecr.eu-west-1.amazonaws.com/XXX:1.0.0-nginx "nginx -g 'daemon ..." 13 hours ago  Up 13 hours   0.0.0.0:80->80/tcp ecs-awseb-test-rcbdaytu5h-6-nginx-e6a58fe786d9eae7dc01 

Die letzte Spalte enthält Hash, von dem wir sprechen. Wenn Sie erstellen nach der Bereitstellung Skript, können Sie Container-ID mit bekommen, sagen wir mal,

docker ps -qf name=nginx 

die Container-ID zurückgibt, basierend auf Namensteil.

Ich würde in .ebextensions

in meiner config-Datei so etwas tun
files: 
    "/opt/elasticbeanstalk/hooks/appdeploy/post/99_do_something_on_container.sh": 
    mode: "000755" 
    owner: root 
    group: root 
    content: | 
     #!/usr/bin/env bash 
     MY_CONTAINER=$(docker ps -qf name=nginx) 
     docker exec $MY_CONTAINER my command 

Hoffe, es gibt Ihnen eine Idee, wie Sie Ihr Problem zu lösen. :-)

Verwandte Themen