Datanar - Контейнеризация docker
Это инструкция, которая по шагам распишет развёртывание сайта с помощью docker на локальной машине, приятного чтения!
Есть два основных понятия - образ
и контейнер
образ
- это начальное состояние какого-либо приложения со всеми
установленными библиотеками и зависимостями
контейнер
- это приложение, которое запускается из образа
и во время работы
может менять своё состояние (например создавать файлы, которых не было
изначально в образе), но после удаления и повторного запуска
контейнер
сбрасывается до состояния образа
(т.е. все созданные файлы в
прошлом запуске будут удалены в текущем)
Для сохранения данных между запусками контейнеров существует volume
, который
позволяет не только сохранять данные между запусками, но и делить одни и те же
данные между несколькими контейнерами
В этом проекте контейнеры настроены так, чтобы сохранять свои volume
в папке
for_docker. Внутри все папки (кроме
nginx-confs) созданы контейнерами для своих
собственных нужд, будьте с ними осторожны, чтобы случайно не удалить их и не
потерять данные
- Скачайте установщик Git с официального сайта
- Запустите установщик и следуйте инструкциям на экране
- Откройте терминал
- Установите Git с помощью Homebrew:
brew install git
- Откройте терминал
- Обновите список пакетов:
sudo apt update
- Установите Git с помощью следующей команды:
sudo apt install git
После установки Git с помощью команды git --version
вы можете проверить его
версию и убедиться, что он установлен правильно
Для запуска этого проекта вам потребуется Docker
- Следуйте инструкциям по установке Docker Desktop
- Запустите Docker Desktop (в нижнем левом углу должна отображаться надпись
зеленоватого цвета
Engine running
) - Откройте терминал и запустите
hello-world
контейнер для тестаДолжен вывестись простой текст:docker run hello-world
Hello from Docker! This message shows that your installation appears to be working correctly! <...>
- Следуйте инструкциям по установке Docker Desktop
- Запустите Docker Desktop (в нижнем левом углу должна отображаться надпись
зеленоватого цвета
Engine running
) - Откройте терминал и запустите
hello-world
контейнер для тестаДолжен вывестись простой текст:docker run hello-world
Hello from Docker! This message shows that your installation appears to be working correctly! <...>
- Следуйте инструкциям по установке Docker Desktop (Если вы не имеете графической оболочки, вы можете воспользоваться установкой только docker engine для Debian и Ubuntu соответственно)
- Запустите Docker Desktop (в нижнем левом углу должна отображаться надпись
зеленоватого цвета
Engine running
, конечно, только если устанавливали Docker Desktop) - Откройте терминал и запустите
hello-world
контейнер для тестаДолжен вывестись простой текст:sudo docker run hello-world
Hello from Docker! This message shows that your installation appears to be working correctly! <...>
- Откройте терминал
- Перейдите в директорию, где вы хотите сохранить проект, используя
cd
. Например:cd %USERPROFILE%\Documents\myProjects
илиcd ~/myProject
- Клонируйте репозиторий, используя следующую команду:
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