Лабораторная работа №1 - Docker и Docker Compose
Описание
Этот проект разворачивает среду с с базой данных MySQL, Git-сервером Gitea, систему управления проектами Redmine и платформу для создания сайтов WordPress с использованием Docker Compose. Ниже приведены шаги для запуска и настройки.
0. Предварительные действия
Перед запуском Docker Compose было сделано следующее:
- Установка Docker Desktop для моей операционной системы.
- Настройка брандмауэра Windows и разрешение доступа Docker.
- Открытие PowerShell с правами администратора и выполнение следующих команд:
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