День 12: Створення власного Docker-образу та його розгортання на AWS Beanstalk — Додаток для випадкових смішних GIF-ок

100DaysOfCode

Вчора ми досліджували Docker та як налаштувати середовище для тестового застосунку. Якщо ви ще не читали, почніть тут, щоб налаштувати все.

Сьогодні ми створимо власний образ Docker, який ви зможете поділитися/відправити своїм друзям чи колегам.

Проект: Створити образ Docker для розподіленого веб-застосунку, написаного на Python, який генерує випадкові смішні GIF на вимогу. Цей застосунок буде розгорнуто за допомогою Docker-образу на AWS Elastic Beanstalk.

Весь код для цього проекту можна знайти на моєму github

Контейнер Docker, використаний у цьому проекті, можна знайти на моєму registry

Крок 1: Створення веб-застосунку на Python

Відкрийте додаток Docker Terminal і створіть каталог для вашого веб-застосунку. Для цього проекту я створю застосунок на Python, який генерує випадкові смішні GIF за допомогою Giphy API. Код для цього можна знайти у моєму github профілі, і ви можете завантажити його для тестування.

Ви побачите, що нам знадобляться пакети “flask” та “requests” для Python, тому додайте їх до файлу “requirements.txt” і встановіть наступним чином. Якщо виникнуть проблеми з правами, можна перед командою додати sudo.

pip install -r requirements.txt

Тепер ви можете запустити ваш Python-застосунок локально, щоб перевірити, чи все працює коректно.

pic

Якщо ви перейдете за адресою “localhost:5000” у вашому браузері, ви повинні побачити ваш веб-застосунок.

Крок 2: Створення образу Docker

Тепер ми оновимо цей проект до образу Docker, який можна легко розповсюджувати.

  • Створіть файл у каталозі вашого проекту під назвою “Dockerfile” наступним чином:

  • Тепер створіть образ Docker за допомогою наступної команди. Якщо виникнуть проблеми з підключенням, використовуйте команду eval, як показано нижче. Зауважте, що потрібно замінити ім’я користувача на ваше власне ім’я репозиторію Docker.

pic

pic

Після успішного створення ви побачите низку повідомлень про побудову бібліотек Python в терміналі, після чого з’явиться “Successfully built”.

pic

Переконайтеся, що цей побудований Docker-образ працює коректно, запустивши цю команду та відкривши адресу в браузері.

pic

Крок 3: Публікація вашого Docker-образу

Опублікуйте цей контейнерний образ у вашому репозиторії Docker за допомогою цієї команди.

pic

Крок 4: Розгортання Docker-образу на AWS Elastic Beanstalk

AWS Elastic Beanstalk — це PaaS (Platform as a Service) від Amazon Web Services, який дозволяє користувачам створювати додатки та відправляти їх. У нашому випадку ми просто вказуємо на наш Docker-образ, і Beanstalk автоматично обробляє деталі, пов'язані з постачанням ресурсів, балансуванням навантаження, масштабуванням та моніторингом здоров'я застосунків.

Налаштуйте обліковий запис AWS, якщо у вас його ще немає, і створіть нове середовище додатка в Beanstalk. Кроки мають бути простими, але є кілька моментів, які варто зазначити:

  1. Виберіть “Predefined Configuration” як Docker.
  2. Для джерела використовуйте опцію “upload your own”, щоб вказати на файл “Dockerrun.aws.json” у вашому проекті (див. приклад на github). Зображення в цьому файлі повинно бути вашим Docker-образом.

Ви можете швидко пройти всі інші кроки, щоб завершити створення додатка.
Це має бути встановлено та опубліковано за вашим URL на Beanstalk.

pic

Перейдіть за вказаним URL, у моєму випадку: http://gifme.us-west-2.elasticbeanstalk.com/, щоб отримати безперервні смішні GIF-ки при кожному оновленні сторінки, що гарантує вам гарний настрій!

pic

Вітаємо, ви успішно розгорнули Docker-образ за допомогою AWS Beanstalk! Тепер ви можете поділитися цим URL з вашою родиною та друзями, щоб викликати усмішку на їхніх обличчях!

День 12 #100DaysOfCode ЗАВЕРШЕНО

Якщо вам сподобалось, будь ласка, натисніть 👏 щоб інші теж могли насолодитись. Слідкуйте за мною в Twitter @HariniLabs щоб отримувати останні новини або просто сказати привіт 🙂

PS: Я веду двотижневу розсилку #WomenInTech для дози натхнення з світу технологій, і так, чоловіки теж можуть підписатися! Отримуйте її тут 🙂

Перекладено з: Day 12: Creating your own Docker image and deploying it on AWS Beanstalk — Random Funny GIFs app

Leave a Reply

Your email address will not be published. Required fields are marked *