# Лабораторная работа №1 - Docker и Docker Compose ## Описание Этот проект разворачивает среду с с базой данных MySQL, Git-сервером Gitea, систему управления проектами 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` содержит описание трех сервисов: - **gitea** – git-сервер; - **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. Git-сервер **Образ**: gitea/gitea **Порты**: 3000:3000 **Переменные окружения**: - `USER_UID` — идентификатор пользователя. - `USER_GID` — идентификатор группы. **Тома**: - `gitea:/data` — том для хранения файлов Gitea. ## 4. Сервис 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` — секретный ключ для работы с сессиями. - **Тома**: - `redmine:/usr/src/redmine/files` — том для хранения файлов Redmine. ## 5. Сервис 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). - **Тома**: - `wordpress:/var/www/html` — том для хранения файлов WordPress. ## 6. Томa данных Для хранения данных и постоянства контейнеров используются три тома: - `wordpress` — для данных WordPress. - `db-data` — для данных MySQL. - `redmine` — для файлов Redmine. ## 7. Остановка сервисов Для остановки и удаления всех контейнеров необходимо выполнить команду: ```bash docker-compose down ``` ## 8. Ссылка на видео https://vkvideo.ru/video-233171473_456239017