Як розгорнути веб-додаток Django з використанням Docker на DigitalOcean Droplet

Дозвольте мені допомогти вам з розгортанням Django.

pic

У цьому блозі/посібнику я проведу вас через процес налаштування вашого Droplet, підключення до нього та розгортання вашого Django додатку за допомогою Docker.

Що ви дізнаєтесь

  • Налаштування Droplet на DigitalOcean
  • Генерація та використання SSH ключів для безпечного доступу
  • Клонування репозиторію з GitHub на ваш Droplet
  • Встановлення Docker та Docker Compose на Ubuntu
  • Запуск вашого Django додатку в контейнерах Docker

Налаштування Droplet

Спочатку налаштуємо Droplet

  • Створення Droplet: Перейдіть на панель DigitalOcean і натисніть Create Droplet.

pic

Droplet

  • Регіон: Тут я вибрав місцезнаходження для цільової аудиторії мого додатку

pic

Region

  • Образ: Я вибрав Ubuntu версії 24.10 як свою операційну систему.

pic

Ubuntu 24.10

  • Опції CPU: Я вибрав 42/mo CPU (вибір залежить від потреб вашого додатку)

pic

  • Метод аутентифікації: Я вибрав метод за допомогою пароля, оскільки це дозволяє моєму колезі-професіоналу підключатися до серверу без потреби додавати SSH.

pic

2-й метод аутентифікації: Додати SSH ключ для безпечного доступу

Якщо ви хочете використовувати SSH ключ, будь ласка, згенеруйте свій SSH ключ, слідуючи інструкціям в бічній панелі (коли ви натискаєте на SSH ключ, відкриється бічна панель з інструкціями, скористайтесь нею, це досить просто).

pic

sidebar

Якщо ви використовуєте Windows, ознайомтесь з моїм статтею нижче для керівництва.

Як генерувати та використовувати SSH ключі на Windows

Після того як ваш SSH ключ згенерований, натисніть “Add SSH Key” і прикріпіть його до вашого Droplet.

pic

натискаємо додати ssh ключ, тепер він доданий ось так

pic

blog-ssh

  • Вибір проекту: Тепер виберіть свій проект (Якщо у вас немає проекту, спершу створіть проект) і створіть Droplet

pic

Droplet створено: Якщо ви бачите це, вітаємо, Droplet створено.

pic

Droplet

Підключення до Droplet з локального ПК:

Тепер, щоб отримати доступ і використовувати його, у нас є два варіанти: або скористатися консоллю, яку надає Digital Ocean, що відкриється ось так (коли натискаєте на консоль, відкриється ця консоль).

pic

Але я буду використовувати термінал на своєму ПК, оскільки пароль вже налаштовано.

Доступ до Droplet: Отримайте IP адресу вашого сервера, ось вона.

pic

IP адреса

Відкрийте ваш проект або командний рядок і введіть наступну команду.

ssh [email protected]

Тут 159.203.80.248 — це IP адреса мого Droplet

Коли ви виконаєте цю команду, вас попросять підтвердити, просто погодьтесь і введіть пароль.

pic

Тепер, коли ви захочете підключитися до цього сервера, просто введіть цю команду з будь-якого ПК в будь-якій точці світу

ssh [email protected]

та пароль від Droplet

Аутентифікація репозиторію GitHub

Тепер я хочу отримати мій приватний репозиторій з GitHub, тому для цього мені потрібно аутентифікувати мій GitHub на моєму Droplet.

Ось мій репозиторій.
pic

repo

Для цього нам потрібно згенерувати SSH ключ на нашому Droplet, який ми додамо до GitHub.

Генерація SSH ключа: Відкрийте термінал на Droplet і згенеруйте нову пару SSH ключів:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Натисніть Enter, щоб прийняти розташування файлу за замовчуванням.
pic

repo

Щоб це зробити, нам потрібно згенерувати SSH ключ на нашому Droplet, який ми потім додамо до GitHub.

Генерація SSH ключа: Відкрийте термінал на Droplet і згенеруйте нову пару SSH ключів:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Натисніть Enter, щоб прийняти розташування файлу за замовчуванням.

Встановлення паролю (опційно): Якщо ви хочете захистити ключ паролем, введіть його (або натисніть Enter, щоб залишити поле порожнім). Ось так:

pic

Виведення публічного ключа: Тепер, щоб відобразити SSH ключ у простому форматі, використовуйте команду:

cat ~/.ssh/id_rsa.pub

Виведення буде таким:

pic

Додавання SSH ключа до GitHub: Тепер скопіюйте виведений ключ і

  • Перейдіть до вашого облікового запису на GitHub.
  • Перейдіть до НалаштуванняSSH та GPG ключіНовий SSH ключ.
  • Вставте скопійований ключ у поле та надайте йому назву, потім натисніть Додати SSH ключ.

pic

Ось так:

pic

Тепер новий SSH ключ додано до мого GitHub, і я можу отримати доступ до приватного репозиторію.

pic

Тепер перейдіть на Droplet і введіть цю команду для аутентифікації:

ssh -T [email protected]

Ось так:

pic

Це означає, що аутентифікація на GitHub пройшла успішно.

Клонування Git репозиторію

Оскільки ми додали репозиторій через SSH, потрібно клонувати його за допомогою SSH.

pic

Виведення в терміналі на Droplet буде таким:

pic

Тепер, якщо ви виконаєте команду

ls

ви побачите, що репозиторій успішно клоновано, у моєму випадку це blog__django.

pic

Тепер перейдіть до директорії blog__django і знову виконайте команду ls.

pic

Як ви бачите, я використовую docker-compose, тому спочатку потрібно встановити Docker.

Встановлення Docker на Ubuntu

Оскільки я використовую Linux, я буду дотримуватися офіційної документації Docker для встановлення Docker на Ubuntu, це досить просто.

pic

Просто використовуйте ці команди з офіційної документації (скріншот прикріплений). Виконуйте їх одну за одною, і це працюватиме.

Офіційна документація: https://docs.docker.com/engine/install/ubuntu/

Якщо ви побачите, що мій hello-world образ завантажено, це означає, що Docker працює.

pic

Крім того, коли ви введете

docker

у терміналі, ви побачите всі доступні команди, ось так:

pic

Тепер, якщо ви побачите мій файл з назвою docker-compose,

pic

якщо я виконаю команду docker-compose build для створення контейнера, виникне помилка, схожа на цю:

pic

Тому що я встановив лише Docker, а не docker-compose. Отже, давайте встановимо і його, як зазначено в описі помилки.
Мені також потрібно встановити docker-compose.

apt install docker-compose

Запуск вашого Django додатка за допомогою Docker

Створення Docker контейнерів: Використовуйте наступну команду для створення контейнерів

docker-compose build

Docker образ створено.

pic

Запуск Docker контейнерів: Тепер давайте запустимо Docker контейнер у відокремленому режимі (detached mode)

sudo docker-compose up -d

pic

Тут видно, що всі контейнери створені та запущені.

pic

Доступ до вашого Django додатка

Тепер, коли контейнери працюють, давайте отримамо доступ до Django додатка через IP-адресу Droplet та порт Django

http://159.203.80.248:8000/admin/login/?next=/admin/

Тут http://159.203.80.248/ — це IP-адреса мого Droplet, а 8000 — порт Django.

pic

Висновок

Дотримуючись цих кроків, ви успішно розгорнули ваш Django веб-додаток за допомогою Docker на Droplet на DigitalOcean.

Не забувайте зберігати ваші SSH ключі в безпеці, і щоразу, коли вам потрібно отримати доступ до сервера або репозиторію GitHub, використовуйте команди, які ми розглянули вище.

— — — — — — — — — — — — — — — — — — — — —

Залишайтеся на зв'язку — @syedamahamfahim 🐬

— — — — — — — — — — — — — — — — — — — — —

Перекладено з: How to Deploy Django Web App with Docker on DigitalOcean Droplet

Leave a Reply

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