Дозвольте мені допомогти вам з розгортанням Django.
У цьому блозі/посібнику я проведу вас через процес налаштування вашого Droplet, підключення до нього та розгортання вашого Django додатку за допомогою Docker.
Що ви дізнаєтесь
- Налаштування Droplet на DigitalOcean
- Генерація та використання SSH ключів для безпечного доступу
- Клонування репозиторію з GitHub на ваш Droplet
- Встановлення Docker та Docker Compose на Ubuntu
- Запуск вашого Django додатку в контейнерах Docker
Налаштування Droplet
Спочатку налаштуємо Droplet
- Створення Droplet: Перейдіть на панель DigitalOcean і натисніть Create Droplet.
Droplet
- Регіон: Тут я вибрав місцезнаходження для цільової аудиторії мого додатку
Region
- Образ: Я вибрав Ubuntu версії 24.10 як свою операційну систему.
Ubuntu 24.10
- Опції CPU: Я вибрав 42/mo CPU (вибір залежить від потреб вашого додатку)
- Метод аутентифікації: Я вибрав метод за допомогою пароля, оскільки це дозволяє моєму колезі-професіоналу підключатися до серверу без потреби додавати SSH.
2-й метод аутентифікації: Додати SSH ключ для безпечного доступу
Якщо ви хочете використовувати SSH ключ, будь ласка, згенеруйте свій SSH ключ, слідуючи інструкціям в бічній панелі (коли ви натискаєте на SSH ключ, відкриється бічна панель з інструкціями, скористайтесь нею, це досить просто).
sidebar
Якщо ви використовуєте Windows, ознайомтесь з моїм статтею нижче для керівництва.
Після того як ваш SSH ключ згенерований, натисніть “Add SSH Key” і прикріпіть його до вашого Droplet.
натискаємо додати ssh ключ, тепер він доданий ось так
blog-ssh
- Вибір проекту: Тепер виберіть свій проект (Якщо у вас немає проекту, спершу створіть проект) і створіть Droplet
Droplet створено: Якщо ви бачите це, вітаємо, Droplet створено.
Droplet
Підключення до Droplet з локального ПК:
Тепер, щоб отримати доступ і використовувати його, у нас є два варіанти: або скористатися консоллю, яку надає Digital Ocean, що відкриється ось так (коли натискаєте на консоль, відкриється ця консоль).
Але я буду використовувати термінал на своєму ПК, оскільки пароль вже налаштовано.
Доступ до Droplet: Отримайте IP адресу вашого сервера, ось вона.
IP адреса
Відкрийте ваш проект або командний рядок і введіть наступну команду.
ssh [email protected]
Тут 159.203.80.248 — це IP адреса мого Droplet
Коли ви виконаєте цю команду, вас попросять підтвердити, просто погодьтесь і введіть пароль.
Тепер, коли ви захочете підключитися до цього сервера, просто введіть цю команду з будь-якого ПК в будь-якій точці світу
ssh [email protected]
та пароль від Droplet
Аутентифікація репозиторію GitHub
Тепер я хочу отримати мій приватний репозиторій з GitHub, тому для цього мені потрібно аутентифікувати мій GitHub на моєму Droplet.
Ось мій репозиторій.
repo
Для цього нам потрібно згенерувати SSH ключ на нашому Droplet, який ми додамо до GitHub.
Генерація SSH ключа: Відкрийте термінал на Droplet і згенеруйте нову пару SSH ключів:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Натисніть Enter
, щоб прийняти розташування файлу за замовчуванням.
repo
Щоб це зробити, нам потрібно згенерувати SSH ключ на нашому Droplet, який ми потім додамо до GitHub.
Генерація SSH ключа: Відкрийте термінал на Droplet і згенеруйте нову пару SSH ключів:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Натисніть Enter
, щоб прийняти розташування файлу за замовчуванням.
Встановлення паролю (опційно): Якщо ви хочете захистити ключ паролем, введіть його (або натисніть Enter, щоб залишити поле порожнім). Ось так:
Виведення публічного ключа: Тепер, щоб відобразити SSH ключ у простому форматі, використовуйте команду:
cat ~/.ssh/id_rsa.pub
Виведення буде таким:
Додавання SSH ключа до GitHub: Тепер скопіюйте виведений ключ і
- Перейдіть до вашого облікового запису на GitHub.
- Перейдіть до Налаштування → SSH та GPG ключі → Новий SSH ключ.
- Вставте скопійований ключ у поле та надайте йому назву, потім натисніть Додати SSH ключ.
Ось так:
Тепер новий SSH ключ додано до мого GitHub, і я можу отримати доступ до приватного репозиторію.
Тепер перейдіть на Droplet і введіть цю команду для аутентифікації:
ssh -T [email protected]
Ось так:
Це означає, що аутентифікація на GitHub пройшла успішно.
Клонування Git репозиторію
Оскільки ми додали репозиторій через SSH, потрібно клонувати його за допомогою SSH.
Виведення в терміналі на Droplet буде таким:
Тепер, якщо ви виконаєте команду
ls
ви побачите, що репозиторій успішно клоновано, у моєму випадку це blog__django.
Тепер перейдіть до директорії blog__django і знову виконайте команду ls.
Як ви бачите, я використовую docker-compose, тому спочатку потрібно встановити Docker.
Встановлення Docker на Ubuntu
Оскільки я використовую Linux, я буду дотримуватися офіційної документації Docker для встановлення Docker на Ubuntu, це досить просто.
Просто використовуйте ці команди з офіційної документації (скріншот прикріплений). Виконуйте їх одну за одною, і це працюватиме.
Офіційна документація: https://docs.docker.com/engine/install/ubuntu/
Якщо ви побачите, що мій hello-world образ завантажено, це означає, що Docker працює.
Крім того, коли ви введете
docker
у терміналі, ви побачите всі доступні команди, ось так:
Тепер, якщо ви побачите мій файл з назвою docker-compose,
якщо я виконаю команду docker-compose build для створення контейнера, виникне помилка, схожа на цю:
Тому що я встановив лише Docker, а не docker-compose. Отже, давайте встановимо і його, як зазначено в описі помилки.
Мені також потрібно встановити docker-compose.
apt install docker-compose
Запуск вашого Django додатка за допомогою Docker
Створення Docker контейнерів: Використовуйте наступну команду для створення контейнерів
docker-compose build
Docker образ створено.
Запуск Docker контейнерів: Тепер давайте запустимо Docker контейнер у відокремленому режимі (detached mode)
sudo docker-compose up -d
Тут видно, що всі контейнери створені та запущені.
Доступ до вашого Django додатка
Тепер, коли контейнери працюють, давайте отримамо доступ до Django додатка через IP-адресу Droplet та порт Django
Тут http://159.203.80.248/ — це IP-адреса мого Droplet, а 8000 — порт Django.
Висновок
Дотримуючись цих кроків, ви успішно розгорнули ваш Django веб-додаток за допомогою Docker на Droplet на DigitalOcean.
Не забувайте зберігати ваші SSH ключі в безпеці, і щоразу, коли вам потрібно отримати доступ до сервера або репозиторію GitHub, використовуйте команди, які ми розглянули вище.
— — — — — — — — — — — — — — — — — — — — —
Залишайтеся на зв'язку — @syedamahamfahim 🐬
— — — — — — — — — — — — — — — — — — — — —
Перекладено з: How to Deploy Django Web App with Docker on DigitalOcean Droplet