Запуск Django-приложения в Docker контейнере

Django — NGINX: запускаем наш проект на сервере

Django — NGINX — это популярная и хорошо протестированная комбинация, используемая для развертывания веб-приложений в продакшене. В этом посте я объясню шаги, необходимые для развертывания вашего проекта Django на сервере с использованием Ubuntu 18.04.

Чтобы развернуть Django — NGINX на вашем сервере, выполните следующие простые шаги.

Условия

Чтобы справиться с этим руководством вам нужно иметь следующее:

  • Git/GitHub
  • PyCharm (или любой другой редактор кода)
  • Опыт работы с Django

Готовый репозиторий с Django-приложением, как всегда на GitLab: https://gitlab.com/PythonRu/django-docker.

Настройка Nginx

Создаем файл конфигурации для нашего приложения

Содержимое файла должно быть примерно следующим:

server listen 80;
server_tokens off;
server_name my_app my_app.domain.local;

location / include uwsgi_params;
uwsgi_pass unix:///run/uwsgi/app/sedova/socket;
>

location /static/ alias /var/www/my_app/static/;
>

location /media/ alias /var/www/my_app/media/;
>
>

systemctl restart nginx

Создание Dockerfile

Приложение будет работать на основе официального образа Python. Напишем следующие инструкции:

Файл Docker Compose

Docker Compose — это отличный инструмент, помогающий определять и запускать приложения, для которых требуются несколько сервисов.

Обычно Docker Compose использует файл docker-compose.yml для настройки сервисов, которые приложение будет использовать. Запускаются эти сервисы с помощью команды docker-compose up . Это создает и запускает все сервисы из файла. В большинстве веб-приложений нужны, веб-сервер (такой как nginx) и база данных (например, PostgreSQL). В этом приложении будем использовать SQLite, поэтому внешняя база данных не потребуется.

Для использования особенностей Docker Compose нужно создать файл docker-compose.yml в той же папке, где находится Dockerfile и добавить туда следующий код:

Дальше разберем содержимое файла построчно:

Эта строка сообщает Docker, какая версия docker-compose должна быть использована для запуска файла. На момент написания руководства последняя версия — 3.8, но обычно синтаксис не сильно меняется по мере выхода последующих.

После настройки docker-compose откройте терминал и запустите команду docker-compose up -d для запуска приложения. Дальше открывайте ссылку localhost:8000 в браузере, чтобы увидеть приложение в действии:

Запуск Django-приложения в Docker контейнере

Для закрытия контейнера используется команда docker-compose down .

Django как перенести проект на другой компьютер

Добрый день. Необходимо перенести Django сайт с одного сервера на другой.
Мои действия: установила Django с Apache и mod_wsgi, создала БД, Сделала дамп базы на старом сервере и развернула на новом. Создала пользователя с тем же паролем и правами на БД. Скопировала файлы на новый сервер. Если перейти по ссылке в браузере, начальная страничка открывается в виде:
С Django сталкиваюсь впервые, подскажите пожалуйста как грамотно все перенести.

Игорь Сидоров

— создать «чистый» проект (предварительно перейдя в нужный каталог)
python django-admin.py startproject dom_u_morja

— проверить его работоспособность: запускаем сервер
python manage.py runserver

Как перенести сайт, созданный в django, на другой компьютер?

Я попытался найти решение для моего запроса, но не повезло. Я сделал сайт, используя django на своей локальной машине. Теперь я хочу установить тот же сайт, созданный django, на другой машине. MySQL — это база данных, которую я использую. Как переместить локальный сайт django в другую машину? Если этот вопрос уже обсуждался, мои извинения.

Чтобы настроить тот же сайт Django на другой машине, вы можете просто скопировать код. Когда вы попытаетесь запустить его, вы получите ошибки, если что-то не настроено правильно, что вы можете решить один за другим. Несколько ошибок, которые вы, вероятно, получите, следующие:

  • Убедитесь, что Python установлен в новом окне
  • Убедитесь, что установлены Django и любые другие зависимости
  • Вам нужно будет установить MySQL и настроить базу данных на новой машине
    • сведения о базе данных (имя, пользователь, пароль) будут указаны в файле настроек проекта .py.
    • Если хост базы данных не имеет значения localhost или 127.0.0.1 , вам нужно подумать о том, куда поместить новую базу данных

    Все эти шаги должны просто повторять то, что вы делали на старой машине.

    Если у вас есть машина «dev» и «производственная» машина, вам следует рассмотреть решения развертывания, которые автоматизируют большую часть этого процесса. Вы также должны поместить код в контроль версий, если он еще не был (Git, mercurial, subversion), чтобы вы могли управлять изменениями источника из любого местоположения.

    Если вы хотите иметь один и тот же сайт на обеих машинах (так что изменения на одном отображаются на другом), вы, вероятно, говорите о «балансировке нагрузки». Вам нужно будет настроить другой сервер, который может делегировать запросы этим двум машинам и указывать оба в одной базе данных.

    Таким образом, вы имеете в виду, что я также должен заполнить базу данных на новой машине дампом sql с моей локальной машины.

    да, если вы хотите, чтобы базы данных запускались одинаково! Если вы хотите, чтобы оба сайта всегда имели одну и ту же базу данных, вы можете указать оба на одну и ту же машину. Вместо 127.0.0.1 / localhost один или оба должны будут указывать somewhere else .

    В моем повседневном программировании я делаю подобные вещи с моими наборами скриптов Fabric, чтобы я мог выполнять повторяющиеся задачи без глупых ошибок / опечаток и без потери времени. Настроить сценарии извлечения и переноса базы данных с фабрикой очень легко, и я очень рекомендую это всем 🙂

    Это называется «развертывание». Есть много способов сделать это, некоторые из которых описаны в http://docs.djangoproject.com/en/dev/howto/deployment/. Там также http://djangobook.com/en/2.0/chapter12/, который дает более общую информацию. Ваш путь будет зависеть от того, что поддерживает ваш сервер.

    Вы должны использовать их как отправные точки, а затем сообщать о проблемах здесь, чтобы мы могли их исправить.

    Обновление: Фактические шаги, необходимые для развертывания вашего приложения (например, его запуск на реальном сервере), зависят от вашего поставщика услуг. Шаги в основном предназначены для настройки вашего веб-сервера для обслуживания приложения, настройки базы данных с правильными значениями и запуска веб-сервера. Фактические действия, связанные с этим, зависят от вашего сервера (какой внешний веб-сервер, который он использует, как его редактировать, он совместно используется или VPS, у вас есть доступ к оболочке и т.д.). Вот пример того, как вы это сделаете в webfaction (популярном хостинг-провайдере python).

    Я не очень хорошо понимал это даже сейчас. Эти страницы только помогли мне перенести сайт django, созданный на сервере разработки, на рабочий сервер. Я все еще не понимаю, что мне делать, чтобы запустить тот же сайт на другой машине. Нужно ли начинать делать этот же проект на другом компьютере с нуля, а потом копировать файлы?

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector