Невозможно заставить эластичный бобовый стебель работать с ECR. По умолчанию S3 - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь создать приложение с эластичным beanstalk для перетаскивания вновь загруженных изображений в репозиторий Amazon ECR для развертывания, но, несмотря на это, эластичное beanstalk cli всегда архивирует мой исходный код, загружает его в S3 и затем развертывает его оттуда.

I Во-первых, позвольте мне сказать, что я просмотрел все документы, которые смог найти. Тем не менее, я не мог заставить свой собственный код работать с предлагаемым решением, которое вы можете найти в Интернете.

Включая следующие ссылки:

  1. Установить eb cli:

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-linux.html

  1. Среда для работы с одним контейнером

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/single-container-docker.html

  1. Развертывание Docker-контейнера на AWS с помощью Elastic Beanstalk

https://medium.com/@sommershurbaji/deploying-a-docker-container-to-aws-with-elastic-beanstalk-28adfd6e7e95

Это были хорошие места для начала. Мне удалось использовать эластичный бобовый стебель, чтобы создать всю окружающую среду. В том числе:

ALB, ASG, SG, целевые группы, проверки работоспособности, экземпляр EC2 и т. Д.

Приложение работает и работает нормально.

Я даже настроил приложение, как показано в документации. Будучи единственным контейнерным приложением, которое мало что дает, оно было довольно простым.

Моя единственная проблема в том, что я заметил, что когда я прихожу и выполняю: \ Команда eb deploy, она просто связывает текущий исходный код папки в zip-файл, затем загружает его на S3 и развертывает его оттуда.

Это не то, чего я хочу достичь. Я хочу развернуть его из ECR.

Мой Dockerfile:

FROM python:3.6-alpine

ADD . /

RUN pip install -r requirments.txt

EXPOSE 80
ENTRYPOINT gunicorn --log-level debug --bind 0.0.0.0:80 server:app

Мой файл Dockerrun.aws.json:

{
   "AWSEBDockerrunVersion": 1,
   "Image": {
       "Name": "$Amazonaccount.dkr.ecr.us-west-1.amazonaws.com/appname2",
       "Update": "true"
},
    "Ports": [
             {
               "ContainerPort": "80"
     }
     ]
}

Я хочу, чтобы eb deploy развернул приложение из ECR, но оно развернуло его из S3. выход оболочки:

$ eb init

Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-south-1 : Asia Pacific (Mumbai)
(default is 3): 1

Select an application to use
1) appname1
2) appname2
3) [ Create new Application ]
(default is 2): 1

 $ eb deploy
    Creating application version archive "app-190108_102545".
    Uploading myapp1/app-190108_102545.zip to S3. This may take a while.
    Upload Complete.
    2019-01-08 08:29:32    INFO    Environment update is starting.      
    2019-01-08 08:29:35    INFO    Deploying new version to instance(s).
    2019-01-08 08:29:41    INFO    Successfully pulled python:3.6-alpine
    2019-01-08 08:29:41    INFO    Successfully built aws_beanstalk/staging-app
    2019-01-08 08:29:50    INFO    Docker container 2cd3aa6f69f2 is running aws_beanstalk/current-app.
   2019-01-08 08:29:58    INFO    New application version was deployed to running EC2 instances.
   2019-01-08 08:29:58    INFO    Environment update completed successfully.

    Alert: An update to the EB CLI is available. Run "pip install --upgrade awsebcli" to get the latest version.
  $  
...