Эластичный бобовый стебель не выберет последнее изображение из - PullRequest
0 голосов
/ 10 марта 2020

У меня есть python серверная установка нескольких контейнеров с Dockerrun. aws. json файл, который берет изображения из ECR:

{
"AWSEBDockerrunVersion": 2,
"volumes": [
    {
        "host": {
            "sourcePath": "API"
        },
        "name": "_Api"
    }
],
"containerDefinitions": [
    {
        "essential": true,
        "Update": true,
        "memory": 128,
        "name": "my_api",
        "image": "xxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/my-api:test1",
        "mountPoints": [
            {
                "containerPath": "/code",
                "sourceVolume": "_Api"
            }
        ]
    },
    {
        "essential": true,
        "memory": 128,
        "name": "nginx",
        "image": "xxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/dashboard-nginx:test1",
        "portMappings": [
            {
                "containerPort": 80,
                "hostPort": 80
            }
        ],
         "links": [
             "my_api"
         ]
    },
    {
        "essential": true,
        "memory": 128,
        "name": "redis",
        "image": "redis:latest",
        "portMappings": [
            {
                "containerPort": 6379,
                "hostPort": 6379
            }
        ]
    }
]

Я сделал некоторые изменения в контейнерах и wi sh для локального тестирования с помощью команды eb local run Но независимо от того, что я делаю, он использует оригинальные старые изображения

У меня есть параллельный docker -compose.yml, который я использовал до EB - который работает, как и ожидалось:

       version: '3'
services:
   my_api:
       image: xxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/my-api:test1
       build: ./API
       expose:
           - "5555"
       volumes:
           - ./API:/code
       depends_on:
           - redis
   redis:
       image: redis:latest
       networks:
         - service
       ports:
           - "6379:6379"
       expose:
           - "6379"
   nginx:
       image: xxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/my-nginx:test1
       build:
           context: ./API
           dockerfile: Dockerfile-nginx
       ports:
           - 80:80
       depends_on:
           - my_api

Я пытался собрать и pu sh с docker -композицией. и с docker, с новым тегом и другим Но все же я получаю то же поведение

Файл .elasticbeanstalk / docker -compose.yml, кажется, обновляется, но даже работает docker -compose вверх - построить с ним все еще используется старое изображение

Я попытался запустить docker system prune -a, чтобы заставить eb вытащить новый помеченный контейнер - но все же, каким-то образом, я снова получил старые изображения

Даже развертывание в AWS действует так же

Когда я запускаю docker ps -a, я вижу, что используемые контейнеры отличаются только по именам, но используют разные идентификаторы изображений:

89b258852e84        xxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/my-nginx:test1   "nginx -g 'daemon of…"   9 minutes ago       Exited (0) 5 minutes ago                       dashboard-nginx
23196d6e8016        xxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/my-api:test1     "uwsgi --ini app.ini"    9 minutes ago       Exited (0) 5 minutes ago                       dashboard-api
95b4473bc38f        redis:latest                                                         "docker-entrypoint.s…"   9 minutes ago       Exited (0) 5 minutes ago                       live_dashboard_redis_1
32be5539e905        xxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/my-nginx:test1   "nginx -g 'daemon of…"   10 minutes ago      Exited (0) 6 minutes ago                       elasticbeanstalk_nginx_1
51d89fcdfd94        redis:latest                                                         "docker-entrypoint.s…"   10 minutes ago      Exited (0) 6 minutes ago                       elasticbeanstalk_redis_1
e10715455525        xxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/my-api:test1     "uwsgi --ini app.ini"    10 minutes ago      Exited (0) 6 minutes ago                       elasticbeanstalk_myapi_1

Что я пропустил или не полностью понял? Есть ли способ сделать eb local rebuild и использовать последние изображения локально? Почему при развертывании EB не тянет последнюю версию образа? Буду очень признателен за любую помощь или предложение

EDIT1

Еще немного информации, которую я собрал, когда я проверял docker -компонентное изображение и eb, которое я вижу, что у них есть другой раздел Mount, который могу объяснить различия кода:

docker -композит

"Mounts": [
   {
       "Type": "bind",
       "Source": "/host_mnt/c/Workspaces/PRJ/DevOps/Tools/proj/API",

       "Destination": "/code",

       "Mode": "rw",
       "RW": true,
       "Propagation": "rprivate"
   }
]

eb:


       "Mounts": [
           {
               "Type": "volume",
               "Name": "API",
               "Source": "/var/lib/docker/volumes/API/_data",
               "Destination": "/code",
               "Driver": "local",
               "Mode": "rw",
               "RW": true,
               "Propagation": ""
           }
       ]

странно, так как я работаю над windows

1 Ответ

0 голосов
/ 19 марта 2020

Через несколько дней с поддержкой AWS по телефону Наконец-то мы получили ответ Итак, если кто-то столкнется с этим в будущем, вам нужно проверить настройку монтирования

Выберите громкость из / var / app / current / API

"volumes": [
    {
        "host": {
            "sourcePath": "/var/app/current/API"
        },
        "name": "_Api"
    }
],
...