8.9 KiB
Руководство по настройке проекта
Этот документ описывает процесс настройки и развертывания окружения проекта с использованием Docker.
В нем содержатся инструкции по установке, запуску контейнеров, настройке базы данных и устранению возможных ошибок.
Предварительные требования
Убедитесь, что на вашем локальном компьютере установлены следующие компоненты:
- Docker (для контейнеризации)
- Docker Compose (для управления многоконтейнерными приложениями Docker)
- Git (для контроля версий и управления репозиториями)
Шаги
1. Клонирование репозитория
Если репозиторий проекта размещен на Git, клонируйте его с помощью следующей команды:
git clone https://gt.joywork.ru/JW/joywork.dev.git
cd joywork.dev
2. Переход в каталог Docker
Перейдите в каталог, где находятся файлы конфигурации Docker (docker-compose.yml и другие):
cd ./docker
3. Сборка и запуск контейнеров Docker
Выполните следующие команды для сборки и запуска контейнеров с помощью Docker Compose:
docker-compose build
docker-compose up -d
- Первая команда собирает образы Docker в соответствии с конфигурацией.
- Вторая команда запускает контейнеры в фоновом режиме (
-d).
4. Установите права доступа для файла my.cnf
Чтобы установить права доступа chmod 644 для файла my.cnf, выполните следующую команду:
Linux
sudo chmod 644 ./mysql/my.cnf
Windows
Команды надо запускать в терминале Powershell
icacls "./mysql/my.cnf" /grant "Everyone:(R)"
Эта команда задаст права на файл следующим образом:
- Владелец может читать и изменять файл.
- Все остальные пользователи могут только читать файл.
5. Ожидание завершения импорта базы данных
Перед открытием проекта убедитесь, что импорт базы данных завершен.
Используйте следующую команду, чтобы отслеживать статус импорта:
Linux
watch -n 2 "docker exec -i DataBase mysql -u root -p'root' -e 'SHOW PROCESSLIST;'"
Windows
Команды надо запускать в терминале Powershell
while ($true) {
docker exec -i DataBase mysql -u root -p'root' -e "SHOW PROCESSLIST;"
Start-Sleep -Seconds 2
}
Когда процесс импорта завершится, можно продолжить настройку.
6. Важное изменение в файле templates/new-header.php
Для корректной работы проекта необходимо закомментировать строки 587-591 в файле templates/new-header.php.
Найдите и измените код:
<?php
$chat = new ChatsCianAvito();
$can_chat_cian = $chat->can_chat($user, 2);
$can_chat_avito = $chat->can_chat($user, 1);
?>
Закомментируйте эти строки, добавив // перед каждой строкой:
<?php
// $chat = new ChatsCianAvito();
// $can_chat_cian = $chat->can_chat($user, 2);
// $can_chat_avito = $chat->can_chat($user, 1);
?>
Без этого изменения проект может не запуститься или работать некорректно.
7. Открытие проекта в браузере
После завершения настройки вы можете открыть проект в браузере по следующему адресу:
http://localhost
- Логин:
+79650964640 - Пароль:
12345
Этот URL будет служить для доступа к проекту, работающему внутри контейнера Docker.
8. Полная очистка данных перед запуском (MySQL и Sphinx) (Если прежне уже был устоновлен JW)
Если требуется сбросить все данные MySQL и Sphinx перед запуском контейнеров, выполните следующие шаги:
8.1. Остановите все контейнеры Docker
docker-compose down
8.2. Полностью очистите данные MySQL
Удалите данные MySQL, чтобы сбросить базу:
Linux
sudo rm -rf ./mysql/data
mkdir -p ./mysql/data
sudo chown -R 999:999 ./mysql/data
Windows
Команды надо запускать в терминале Powershell
Remove-Item -Recurse -Force .\mysql\data
New-Item -Path .\mysql\data -ItemType Directory
icacls .\mysql\data /grant "Users:(OI)(CI)F"
8.3. Полностью очистите данные Sphinx
Удалите старые индексы и логи:
Linux
sudo rm -rf sphinx/index/
sudo rm -rf sphinx/binlog/
sudo mkdir -p sphinx/index/
sudo mkdir -p sphinx/binlog/
sudo rm -rf sphinx2/index/
sudo rm -rf sphinx2/binlog/
sudo mkdir -p sphinx2/index/
sudo mkdir -p sphinx2/binlog/
Windows
Команды надо запускать в терминале Powershell
Remove-Item -Recurse -Force .\sphinx\index\
Remove-Item -Recurse -Force .\sphinx\binlog\
New-Item -Path .\sphinx\index -ItemType Directory
New-Item -Path .\sphinx\binlog -ItemType Directory
Remove-Item -Recurse -Force .\sphinx2\index\
Remove-Item -Recurse -Force .\sphinx2\binlog\
New-Item -Path .\sphinx2\index -ItemType Directory
New-Item -Path .\sphinx2\binlog -ItemType Directory
8.4. Установите правильные права доступа
Чтобы контейнеры могли записывать в папки, установите соответствующие права:
Linux
sudo chown -R 999:999 ./sphinx/index
sudo chown -R 999:999 ./sphinx/binlog
sudo chown -R 999:999 ./sphinx2/index
sudo chown -R 999:999 ./sphinx2/binlog
sudo chmod -R 777 ./sphinx/index
sudo chmod -R 777 ./sphinx/binlog
sudo chmod -R 777 ./sphinx2/index
sudo chmod -R 777 ./sphinx2/binlog
Windows
Команды надо запускать в терминале Powershell
icacls .\sphinx\index /grant "Users:(OI)(CI)F" /T
icacls .\sphinx\binlog /grant "Users:(OI)(CI)F" /T
icacls .\sphinx2\index /grant "Users:(OI)(CI)F" /T
icacls .\sphinx2\binlog /grant "Users:(OI)(CI)F" /T
8.5. Перезапустите контейнеры
После очистки данных снова запустите контейнеры:
docker-compose up -d
8.6. Проверьте состояние контейнеров
Убедитесь, что все контейнеры успешно запущены:
docker ps
Если возникли ошибки, проверьте логи:
docker-compose logs
Заключение
После выполнения этих шагов:
- Контейнеры Docker будут запущены и работать.
- База данных MySQL будет восстановлена из файла
/docker/dump/schema.sql. - Вы сможете проверить структуру и данные базы данных.
- Проект будет доступен по адресу
http://localhost. - MySQL будет доступен через phpMyAdmin по адресу
http://localhost:8085.
Устранение неполадок
Если во время настройки возникли ошибки:
-
Проверьте логи с помощью команды:
docker-compose logs -
Перезапустите контейнеры при необходимости:
docker-compose down && docker-compose up -d -
Проверьте логи ошибок MySQL для диагностики проблем.
За дополнительной информацией обратитесь к документации проекта или свяжитесь с командой поддержки.