diff --git a/kashin_maxim_lab_1/README.md b/kashin_maxim_lab_1/README.md index ce1f1dd..18f3692 100644 --- a/kashin_maxim_lab_1/README.md +++ b/kashin_maxim_lab_1/README.md @@ -1 +1,93 @@ -Тут будет отчет \ No newline at end of file +# Кашин Максим ПИбд-42 + +## Описание + +Этот проект разворачивает среду с базой данных MySQL, системами управления проектами Redmine и платформой для создания сайтов WordPress с использованием Docker Compose. Ниже приведены шаги для запуска и настройки. + +## 0. Предварительные действия + +Перед запуском Docker Compose выполнил следующие шаги: + +1. Установил [Docker Desktop](https://www.docker.com/products/docker-desktop) для моей операционной системы. +2. Настроил брандмауэр Windows и разрешил доступ Docker. +3. Открыл PowerShell с правами администратора и выполнил следующие команды: + ```bash + net start vmcompute + wsl --set-default-version 2 + ``` + +## 1. Структура и запуск сервиса + +Файл `docker-compose.yml` содержит описание трех сервисов: +- **db (MySQL)** – база данных; +- **redmine (Redmine)** – система управления проектами; +- **wordpress (WordPress)** – платформа для создания сайтов. + +Запуск всех сервисов происходит через команду: + ```bash + docker-compose up -d + ``` + +## 2. Сервис MySQL + +Сервис `db` представляет собой контейнер с MySQL версии 8.0. + +- **Образ**: `mysql:8.0` +- **Переменные окружения**: + - `MYSQL_ROOT_PASSWORD` — пароль для пользователя root. + - `MYSQL_DATABASE` — имя создаваемой базы данных (exampledb). + - `MYSQL_USER` — имя пользователя базы данных (exampleuser). + - `MYSQL_PASSWORD` — пароль пользователя базы данных (examplepass). +- **Тома (volumes)**: + - `db-data:/var/lib/mysql` — том для хранения данных базы данных. + +Сервис MySQL необходим для работы как Redmine, так и WordPress. + +## 3. Сервис Redmine + +Сервис `redmine` представляет собой контейнер с системой управления проектами Redmine. + +- **Образ**: `redmine` +- **Порты**: + - `8080:3000` — Redmine будет доступен по адресу http://localhost:8080. +- **Переменные окружения**: + - `REDMINE_DB_DATABASE` — имя базы данных (exampledb). + - `REDMINE_DB_MYSQL` — имя хоста базы данных (db). + - `REDMINE_DB_PASSWORD` — пароль для подключения к базе данных (example). + - `REDMINE_SECRET_KEY_BASE` — секретный ключ для работы с сессиями. +- **Тома (volumes)**: + - `redmine:/usr/src/redmine/files` — том для хранения файлов Redmine. + +## 4. Сервис WordPress + +Сервис `wordpress` представляет собой контейнер с платформой WordPress. + +- **Образ**: `wordpress` +- **Порты**: + - `8081:80` — WordPress будет доступен по адресу http://localhost:8081. +- **Переменные окружения**: + - `WORDPRESS_DB_HOST` — хост базы данных (db). + - `WORDPRESS_DB_USER` — имя пользователя базы данных (exampleuser). + - `WORDPRESS_DB_PASSWORD` — пароль для подключения к базе данных (examplepass). + - `WORDPRESS_DB_NAME` — имя базы данных (exampledb). +- **Тома (volumes)**: + - `wordpress:/var/www/html` — том для хранения файлов WordPress. + +## 5. Томa данных + +Для хранения данных и постоянства контейнеров используются три тома: + +- `wordpress` — для данных WordPress. +- `db-data` — для данных MySQL. +- `redmine` — для файлов Redmine. + +## 6. Остановка сервисов + +Для остановки и удаления всех контейнеров необходимо выполнить команду: + ```bash + docker-compose down + ``` + +## 7. Ссылка на видео + +[Видео-отчёт Кашин Максим ПИбд-42](https://disk.yandex.ru/i/O8L1qmk4PIbCvA) \ No newline at end of file diff --git a/kashin_maxim_lab_1/docker-compose.yml b/kashin_maxim_lab_1/docker-compose.yml new file mode 100644 index 0000000..d09e0bf --- /dev/null +++ b/kashin_maxim_lab_1/docker-compose.yml @@ -0,0 +1,45 @@ +version: '3.1' # Версия Docker Compose файла + +services: # Определение сервисов, которые будут запускаться + + db: # Сервис базы данных MySQL + image: mysql:8.0 # Образ + restart: always # Автоматический перезапуск контейнера + environment: # Переменные окружения для конфигурации базы данных + MYSQL_ROOT_PASSWORD: example + MYSQL_DATABASE: exampledb + MYSQL_USER: exampleuser + MYSQL_PASSWORD: examplepass + volumes: # Определение томов для сохранения данных базы данных + - db-data:/var/lib/mysql + + redmine: # redmine Система учёта багов, т.е. баг-трекер. + image: redmine # Образ + restart: always # Автоматический перезапуск контейнера + ports: + - 8080:3000 # Переадресация локального порта 8080 на порт 3000 в контейнере + environment: # Переменные окружения для настройки Redmine (подключение к бд) + REDMINE_DB_DATABASE: exampledb + REDMINE_DB_MYSQL: db + REDMINE_DB_PASSWORD: example + REDMINE_SECRET_KEY_BASE: supersecretkey + volumes: # Том для хранения данных Redmine + - redmine:/usr/src/redmine/files + + wordpress: # wordpress Популярная система управления контентом. + image: wordpress # Образ + restart: always # Автоматический перезапуск контейнера + ports: + - 8081:80 # Переадресация локального порта 8081 на порт 80 в контейнере + environment: # Переменные окружения для настройки WordPress (подключение к бд) + WORDPRESS_DB_HOST: db + WORDPRESS_DB_USER: exampleuser + WORDPRESS_DB_PASSWORD: examplepass + WORDPRESS_DB_NAME: exampledb + volumes: # Том для хранения данных WordPress + - wordpress:/var/www/html + +volumes: # Определение томов для хранения данных + wordpress: + db-data: + redmine: