Skip to content

Latest commit

 

History

History
186 lines (159 loc) · 9.6 KB

docker-install.md

File metadata and controls

186 lines (159 loc) · 9.6 KB

Datanar - Контейнеризация docker

Это инструкция, которая по шагам распишет развёртывание сайта с помощью docker на локальной машине, приятного чтения!

Содержание

Преамбула

Есть два основных понятия - образ и контейнер

образ - это начальное состояние какого-либо приложения со всеми установленными библиотеками и зависимостями

контейнер - это приложение, которое запускается из образа и во время работы может менять своё состояние (например создавать файлы, которых не было изначально в образе), но после удаления и повторного запуска контейнер сбрасывается до состояния образа (т.е. все созданные файлы в прошлом запуске будут удалены в текущем)

Для сохранения данных между запусками контейнеров существует volume, который позволяет не только сохранять данные между запусками, но и делить одни и те же данные между несколькими контейнерами

В этом проекте контейнеры настроены так, чтобы сохранять свои volume в папке for_docker. Внутри все папки (кроме nginx-confs) созданы контейнерами для своих собственных нужд, будьте с ними осторожны, чтобы случайно не удалить их и не потерять данные

Установка Git

Windows

  1. Скачайте установщик Git с официального сайта
  2. Запустите установщик и следуйте инструкциям на экране

MacOS

  1. Откройте терминал
  2. Установите Git с помощью Homebrew:
    brew install git

Linux (Debian / Ubuntu)

  1. Откройте терминал
  2. Обновите список пакетов:
    sudo apt update
  3. Установите Git с помощью следующей команды:
    sudo apt install git

После установки Git с помощью команды git --version вы можете проверить его версию и убедиться, что он установлен правильно

Установка docker

Для запуска этого проекта вам потребуется Docker

Windows

  1. Следуйте инструкциям по установке Docker Desktop
  2. Запустите Docker Desktop (в нижнем левом углу должна отображаться надпись зеленоватого цвета Engine running)
  3. Откройте терминал и запустите hello-world контейнер для теста
    docker run hello-world
    Должен вывестись простой текст:
    Hello from Docker!
    This message shows that your installation appears to be working correctly!
    
    <...>
    

MacOS

  1. Следуйте инструкциям по установке Docker Desktop
  2. Запустите Docker Desktop (в нижнем левом углу должна отображаться надпись зеленоватого цвета Engine running)
  3. Откройте терминал и запустите hello-world контейнер для теста
    docker run hello-world
    Должен вывестись простой текст:
    Hello from Docker!
    This message shows that your installation appears to be working correctly!
    
    <...>
    

Linux (Debian / Ubuntu)

  1. Следуйте инструкциям по установке Docker Desktop (Если вы не имеете графической оболочки, вы можете воспользоваться установкой только docker engine для Debian и Ubuntu соответственно)
  2. Запустите Docker Desktop (в нижнем левом углу должна отображаться надпись зеленоватого цвета Engine running, конечно, только если устанавливали Docker Desktop)
  3. Откройте терминал и запустите hello-world контейнер для теста
    sudo docker run hello-world
    Должен вывестись простой текст:
    Hello from Docker!
    This message shows that your installation appears to be working correctly!
    
    <...>
    

Клонирование репозитория

  1. Откройте терминал
  2. Перейдите в директорию, где вы хотите сохранить проект, используя cd. Например: cd %USERPROFILE%\Documents\myProjects или cd ~/myProject
  3. Клонируйте репозиторий, используя следующую команду:
    git clone https://github.com/Gray-Advantage/Datanar-Django.git

Настройка сервера

Создайте в корне проекта файл .env скопировав содержимое из .env.example

  • На Windows:
    copy .env.example .env
  • На Mac или Linux:
    cp .env.example .env

И измените все настройки в соответствии с этой инструкцией. Если не добавить .env или просто продублировать информацию из .env.example в .env, приложение будет запущено с дефолтными настройками, что не рекомендуется по соображениям безопасности, а также часть функций либо не будет работать, либо и вовсе вызовет ошибки.

Запуск сервера

Когда всё готово, осталось только запустить сервер:

  • Windows или MacOS
    docker compose up --build -d
  • Linux (Debian / Ubuntu)
    sudo docker compose up --build -d

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

Автоматически создан суперпользователь с логином, почтой и паролем из .env файла. Теперь при авторизации с этими данными на сайте в правом верхнем углу, нажав на свою аватарку, вы увидите в списке пункты "Панель управления" и "Админка"

После запуска вы должны иметь возможность открыть проект в браузере по адресу http://127.0.0.1/ или http://localhost/.

Вы превосходны и роскошны! ©

Tip

Вот несколько полезных команд для работы с docker:

  • docker compose build - создание образов (но без запуска контейнеров)
  • docker compose up - запуск контейнеров (--build для создания/обновления их образов перед запуском, -d для запуска в фоне)
  • docker compose down - остановить и удалить все контейнеры
  • docker image prune - удалить все неиспользуемые образы

Tip

После каждого изменения в коде, нужно пересоздавать образы с помощью build. Или просто указывать ключ --build перед каждым запуском up