Рубрики
Без рубрики

Докерейте приложение Django

В этой статье мы увидим, как подключить приложение Django Python. Какое преимущество … Теги с Python, Docker, программированием, CodeNewie.

В этой статье мы увидим, как подключить приложение Django Python.

Какое преимущество докеризации вашего приложения Python?

  • Вы можете запустить приложение без установки Python.
  • Нет версии столкновения на хосты с установленной другой версией Python.
  • Не нужно устанавливать зависимости.
  • Не нужно помнить, что это команда для запуска вашего приложения Python.

Последний может звучать тривиально для чистых разработчиков Python, но подумайте о большой системе, сделанной микросервисами и используя 3/4 разных языков с разными версиями.

Мы просто хотим Беги Наше приложение, и, вероятно, с разными командами для разработки и производства.

Питон

Соответственно для своего собственного определения Python – это язык программирования:

  • высокий уровень
  • интерпретировать
  • общее назначение

Его дизайн подчеркивает читаемость кода с использованием значительных отступов (без запятых).

Его языковые конструкции, а также его объектно-ориентированный подход, целью помощи программистам написать четкий и логический код.

Django

Django – это веб-каркас Python высокого уровня. Это свободный и открытый источник.

Докер

Docker – это платформа для создания запуска и обмена приложениями, используя идею контейнеров.

Пошаговое руководство

Предпосылки:

  • Установлен Python
  • пипс установлен
  • Докер установлен

Шаги:

  • Проверьте предварительные условия
  • Установите Django-Admin с Pip
  • Создать приложение Django Hello World
  • Запустите приложение Django локально (без Docker)
  • Создание требований. atxt file.
  • Создайте DockerFile, Docker-Compose.yml, .Dockerignore
  • построить и запустить только одну команду

Проверьте предварительные условия

python --version

В некоторых случаях вам нужно добавить 3 в конце Python:

Убедитесь, что пипс установлен

pip --version

Убедитесь, что докер установлен

docker version

Установите Django-Admin с Pip

Установите Django-Admin, используя PIP

 pip install django-admin

Создать приложение Django Hello World

Используйте Django-Admin, чтобы создать приложение Django, используя эту команду:

 django-admin startproject python_docker

попасть в папку:

cd python_docker

И откройте его, используя свой любимый IDE. Например, если вы используете йосяческий студийный код, вы можете ввести

code .

И ваш проект должен выглядеть так:

Запустите приложение Django локально (без Docker)

Запустите свой проект Django локально без Docker, используя эту команду:

python manage.py runserver

(Замените на Python3, если у вас есть эта версия)

Теперь посетите Localhost: 8000 на вашем браузере:

Создание требований. atxt file.

Перед созданием образа Docker давайте создадим файл требований.txt для этого проекта.

Для простоты мы будем использовать команду pip замораживать и перенаправлять вывод в файл, называемый требованиями .txt

pip freeze -l > requirements.txt

Опция -l (короткая для –локаль) – установить только локальные зависимости.

Обратите внимание, что лучший способ сделать это – сначала создать виртуальную среду, вот ссылка https://docs.ython.org/3/library/venv.html.

Докер

Давайте начнем процесс контейнера для нашего приложения Python.

  • Создать файл .dockerignore
  • Создать dockerfile
  • Создать docker-compose.yml файл
  • Создайте и запустите сервис только с одной командой
  • финальный тест

.dockerignore.

В той же папке создайте файл под названием .Dockerignore (начинается с точек)

Этот файл, таким образом, похожим на .gitignore, это игнорировать какой-то файл, когда мы будем копировать файлы внутри образа докера. Например, мы не хотим папку .git на нашем изображении, поэтому мы можем заполнить файл .dockerignore с

.git

Dockerfile

Теперь давайте создадим файл под названием DockerFile (Capital D).

Dockerfile – это простой, но мощный текстовый файл с форматом:

Ключевое значение

Ключевое значение

Ключевое значение

Давайте заполним следующее: Dockerfile, как это:

FROM python:3

ENV PYTHONUNBUFFERED=1

WORKDIR /code

COPY requirements.txt .

RUN pip install -r requirements.txt

COPY . .

EXPOSE 8000

CMD ["python","manage.py","runserver","0.0.0.0:8000"]

Давайте объясним линию по линии то, что здесь происходит:

Из Python: 3 От состоит в том, чтобы установить базовое изображение, в данном случае Python: 3 В среде готовой к производству мы можем использовать более мелкозернистую версию

Env Мы устанавливаем переменную среды с до 1. Установка Pythonunbufted в непустое значение, гарантирует, что выход Python отправляется прямо к терминалу, не будучи первым буферизацией, поэтому вы можете увидеть вывод вашего приложения в режиме реального времени.

Workdir/код Мы устанавливаем каталог по умолчанию для последующих команд копирования и CMD. Эта строка не является обязательной, но избегать приложения, находящегося на корневом уровне файловой системы Image Docker

Скопируйте требования. Atxt. Это будет скопировать файл требований .txt в папке, определенном как Workdir

Запустить pip install -r требования .txt Это установит зависимости Python внутри образа докера

Копировать. Отказ Эта команда будет скопировать все файлы и папки (входит доконфила) в файловой системе изображения. AL файлы и папки, включенные в файл .dockerignore, будут проигнорированы

Выставлять 8000 Эта команда состоит в том, чтобы сообщить Docker, что вы будете использовать порт 8000 в качестве внешней ноты. (Примечание. Эта команда не является обязательной, если вы публикуете порт при запуске контейнера)

CMD [«Python», «Manage.py», «Runserver», «0.0.0.0.0:8000»] Это установит команду по умолчанию для запуска при запуске контейнера на основе этого изображения. Это заменяет команду, которую мы использовали ранее, и она делает прозрачный для развертывания (вам не нужно запоминать, что была команда для запуска приложения Python)

Docker Compose и Docker-Compose.yml файл

Простой и удобный способ запустить приложение Hello World – использовать Docker Compose, даже если у нас есть просто небольшое приложение. В случае, если мы добавим базу данных или другую услугу позже, мы уже устанавливаемся!

Создайте Docker-Compose.yml-файл и заполните так:

version: "3.9"

services:
  django:
    image: django-hello-world:0.0.1
    build: .
    ports:
      - "8000:8000"

Здесь мы определяем:

  • Один сервис (контейнер) под названием «Django»
  • Сервис основан на изображении, называемом «Django-Hello-World: 0.0.1». Если это изображение недоступен локально, Docker построит его (не стесняйтесь переименовать это имя изображения)
  • строить: . ума! Это путь, который мы используем для создания нашего изображения
  • Порты: Здесь мы определяем порт, который мы хотим опубликовать.

Вот и все. Очень простой но это позволяет нам избежать длинной команды сборки Docker в командной строке

Структура вашей папки должна выглядеть так

Построить и запустить только одну команду

Теперь немного магии. Просто беги

docker compose up --build

Вариант –build – заставить воссоздать изображение, если он уже недоступен. Это не очень нужно в первый раз, поскольку изображение недоступно, но это полезно во время разработки, чтобы просто внести некоторые изменения и тестировать, если все работает контрольная работа

Теперь посетите 127.0.0.1:8000 (игнорируйте журнальное сообщение, оно может быть обманутым)

Спасибо за чтение, вы можете следовать за мной в Twitter здесь: https://twitter.com/intent/follow?screen_name=francescociull4.

Репозиторий GitHub https://github.com/francescoxx/python-docker.

Оригинал: “https://dev.to/francescoxx/dockerize-a-django-application-4fa”