Огляд проекту:
У цьому проекті я створюю Flask додаток, який отримує дані з змінних середовища та зберігає їх у базі даних MySQL.
GitHub репозиторій:
Два рівневий Flask додаток
Кроки налаштування
1. Клонування репозиторію
git clone https://github.com/LondheShubham153/two-tier-flask-app
2. Створення Docker образу
Перейдіть до клонованої директорії та створіть Docker образ:
docker build -t two-tier-app:latest .
3. Створення власної мережі
Перегляньте наявні Docker мережі:
docker network ls
Створіть власну мережу з назвою twotier
:
docker network create twotier
4. Налаштування MySQL
a. Створення Docker тому:
docker volume ls
docker volume create mysql-data
b. Запуск контейнера MySQL:
docker run -d --name mysql-demo -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
c. Доступ до контейнера MySQL:
docker exec -it mysql-demo bash
d. Увійти в MySQL та створити базу даних:
mysql -u root -p
# Введіть пароль: root
CREATE DATABASE devops;
exit
exit
e. Запуск MySQL з власною мережею:
docker run -d -v mysql-data:/var/lib/mysql --network twotier --name mysql -e MYSQL_DATABASE=devops -e MYSQL_ROOT_PASSWORD=root mysql:5.7
Пояснення:
-v mysql-data:/var/lib/mysql
: Прив'язує томmysql-data
до каталогу MySQL контейнера.--network twotier
: Підключає контейнер до мережіtwotier
.--name mysql
: Назначає контейнеру ім’яmysql
.-e MYSQL_DATABASE=devops -e MYSQL_ROOT_PASSWORD=root
: Встановлює ім’я бази даних та пароль root через змінні середовища.
5. Запуск Flask додатку
Запуск контейнера Flask:
docker run -d --network twotier --name two-tier-app -e MYSQL_HOST=mysql -e MYSQL_USER=root -e MYSQL_PASSWORD=root -e MYSQL_DB=devops -p 5000:5000 two-tier-app:latest
Пояснення:
--network twotier
: Підключає контейнер Flask до мережіtwotier
.- Змінні середовища (
MYSQL_HOST
,MYSQL_USER
,MYSQL_PASSWORD
,MYSQL_DB
) передають необхідну інформацію для підключення Flask додатку до MySQL бази даних. -p 5000:5000
: Відкриває порт 5000 для доступу до Flask додатку.
Ось посилання на YouTube: https://youtube.com/@raeesq.?si=v_QK6Q2XXMf9mKep
Висновок
Цей проект демонструє, як створити архітектуру з двома рівнями за допомогою Docker, з’єднуючи Flask додаток з базою даних MySQL. Сподіваюся, цей проект буде корисним та надихаючим для вашої власної подорожі в DevOps!
Перекладено з: My DevOps Project: Building a Two-Tier Flask App with MySQL