Я пытаюсь создать приложение с эластичным beanstalk для перетаскивания вновь загруженных изображений в репозиторий Amazon ECR для развертывания, но, несмотря на это, эластичное beanstalk cli всегда архивирует мой исходный код, загружает его в S3 и затем развертывает его оттуда.
I Во-первых, позвольте мне сказать, что я просмотрел все документы, которые смог найти.
Тем не менее, я не мог заставить свой собственный код работать с предлагаемым решением, которое вы можете найти в Интернете.
Включая следующие ссылки:
- Установить eb cli:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-linux.html
- Среда для работы с одним контейнером
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/single-container-docker.html
- Развертывание 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.
$