• . - Точка означает, что Dockerfile для сборки образа находится в этой же директории. Если у вас он в другой, можно указать путь, полный или относительный.

Выполняем команду. Начнётся процесс сборки. Докер пойдёт по шагам, указанным в Dockerfile, начиная со скачивания базового образа и заканчивая копированием файлов. Да, он остановится на этом, т.к. последняя строка CMD ... будет выполнена при запуске контейнера, а не при сборке образа.

Запуск контейнера. После того, как собрали образ, необходимо запустить контейнер.

Для этого выполним следующую команду:

``` sudo docker run --name project --env-file ./.env -p 8000:8000 -d project_image

```

Разберём команду:

  • sudo docker - Идентично предыдущему разделу.
  • run - Сообщаем, что мы хотим запустить контейнер.
  • --name project - Определяем имя контейнера. Если не указать, то имя будет сгенерированно случайно, но для удобства работы с контейнером его всё же стоит указывать.
  • --env-file ./.env - В данном параметре мы указываем, что нужно получить переменные окружения из .env-файла для того, чтобы они были доступны внутри контейнера. При этом самого файла там не будет.
  • -p 8000:8000 - В этом параметре указываем, что контейнер будет "вещать" наружу по 8000-му порту, используя внутренний 8000-й порт.
  • -d - Данный ключ означает, что контейнер будет запущен в фоновом режиме. Если этот ключ не указать, то при запуске контейнера в терминале будут отображаться выводящиеся в консоль логи.
  • project_image - В самом конце указываем используемый образ для запуска контейнера.

Проверка работы. После того, как контейнер создан и запущен, откройте браутер и перейдите по адресу http://0.0.0.0:8000/, подставив вместо 0.0.0.0 IP-адрес сервера или, если у вас к серверу подключён домен, то http://ваш_домен:8000/.

Должен открыться сайт.

Дополнительно. Если сайт не открылся, стоит проверить состояние контейнера, выполнив команду:

``` sudo docker ps -a

```

Эта команда отобразит все контейнеры, как запущенные, так и остановленные. Найдите в списке контейнер project и посмотрите на колонку "STATUS". Там должно отображаться UP ....

Если отображается Exited ..., следует проверить логи контейнера выполнив команду:

``` sudo docker logs project

```

Вероятно, там будет ответ на то, почему не работает проект.

Если же контейнер указан как UP ..., но не работает по IP, следует проверить настройки файрволла или открытые порты.

Заключение. Данный пост не описывает полноценный процесс разворачивания Django-проекта на VPS, а лишь подготовку или запуск dev-сервера для того, чтобы проверять работу во время разработки.

В одном из следующих постов мы с вами разберёмся, как запустить полноценный "prod-сервер" с базой данных и веб-сервером NGINX в Docker compose-сервисе.

Файлы к посту, можно получить в боте по коду: 687007 Пост на сайте Поддержать проект

#Python #Docker #VPS #PostgreSQL #Django #dotenv #Dockerfile #NGINX #SFTP
repost

64

input message

напишите коммент

еще контент в этом сообществе

еще контент в этом соообществе

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь