diff --git a/kosheev_maksim_lab_1/docker-compose.yml b/kosheev_maksim_lab_1/docker-compose.yml new file mode 100644 index 0000000..a5401a6 --- /dev/null +++ b/kosheev_maksim_lab_1/docker-compose.yml @@ -0,0 +1,88 @@ +version: '3.8' + +services: + mediawiki: + image: mediawiki:latest + container_name: mediawiki + environment: + MEDIAWIKI_DB_HOST: db-mediawiki + MEDIAWIKI_DB_NAME: mediawiki + MEDIAWIKI_DB_USER: wikiuser + MEDIAWIKI_DB_PASSWORD: password + ports: + - "8081:80" + depends_on: + - db-mediawiki + volumes: + - mediawiki_data:/var/www/html/images + + db-mediawiki: + image: mysql:5.7 + container_name: db-mediawiki + environment: + MYSQL_ROOT_PASSWORD: rootpassword + MYSQL_DATABASE: mediawiki + MYSQL_USER: wikiuser + MYSQL_PASSWORD: password + volumes: + - db_mediawiki_data:/var/lib/mysql + + wordpress: + image: wordpress:latest + container_name: wordpress + environment: + WORDPRESS_DB_HOST: db-wordpress + WORDPRESS_DB_USER: wpuser + WORDPRESS_DB_PASSWORD: password + WORDPRESS_DB_NAME: wordpress + ports: + - "8082:80" + depends_on: + - db-wordpress + volumes: + - wordpress_data:/var/www/html + + db-wordpress: + image: mysql:5.7 + container_name: db-wordpress + environment: + MYSQL_ROOT_PASSWORD: rootpassword + MYSQL_DATABASE: wordpress + MYSQL_USER: wpuser + MYSQL_PASSWORD: password + volumes: + - db_wordpress_data:/var/lib/mysql + + redmine: + image: redmine:latest + container_name: redmine + environment: + REDMINE_DB_MYSQL: db-redmine + REDMINE_DB_USERNAME: redmine + REDMINE_DB_PASSWORD: password + REDMINE_DB_DATABASE: redmine + ports: + - "8083:3000" + depends_on: + - db-redmine + volumes: + - redmine_data:/usr/src/redmine/files + + db-redmine: + image: mysql:5.7 + container_name: db-redmine + environment: + MYSQL_ROOT_PASSWORD: rootpassword + MYSQL_DATABASE: redmine + MYSQL_USER: redmine + MYSQL_PASSWORD: password + volumes: + - db_redmine_data:/var/lib/mysql + +volumes: + mediawiki_data: + db_mediawiki_data: + wordpress_data: + db_wordpress_data: + redmine_data: + db_redmine_data: \ No newline at end of file diff --git a/kosheev_maksim_lab_1/readmy.md b/kosheev_maksim_lab_1/readmy.md new file mode 100644 index 0000000..7463771 --- /dev/null +++ b/kosheev_maksim_lab_1/readmy.md @@ -0,0 +1,62 @@ +Извините за недоразумение! Исправляю отчет с учетом нужного Markdown-формата: + +--- + +# Лабораторная работа №1 - Развертывание сервисов в Docker + +## Цель +Знакомство с контейнеризацией и развертывание нескольких веб-приложений с помощью Docker Compose. + +## Описание +В рамках лабораторной работы были развернуты три веб-сервиса: **MediaWiki**, **WordPress** и **Redmine**. Все сервисы работают в Docker-контейнерах и используют MySQL в качестве базы данных. Конфигурация развертывания осуществляется с помощью Docker Compose. + +## Как запустить лабораторную работу + +1. Убедитесь, что Docker и Docker Compose установлены на вашей системе. +2. Клонируйте репозиторий с проектом и перейдите в его папку: + ```bash + git clone + cd <папка_проекта> + ``` +3. Запустите сервисы командой: + ```bash + docker-compose up -d + ``` +4. После запуска сервисы будут доступны на следующих портах: + - **MediaWiki**: [http://localhost:8081](http://localhost:8081) + - **WordPress**: [http://localhost:8082](http://localhost:8082) + - **Redmine**: [http://localhost:8083](http://localhost:8083) + +5. Чтобы остановить все контейнеры, выполните: + ```bash + docker-compose down + ``` + +## Используемые технологии + +- **Docker**: Среда контейнеризации для изоляции приложений. +- **Docker Compose**: Утилита для развертывания многоконтейнерных Docker-приложений. +- **MediaWiki**: Движок для создания вики-сайтов. +- **WordPress**: Система управления контентом для создания веб-сайтов и блогов. +- **Redmine**: Система для отслеживания задач и управления проектами. +- **MySQL**: Реляционная база данных, используемая для хранения данных каждого сервиса. + +## Функциональность + +Файл `docker-compose.yml` создает и управляет следующими сервисами: + +1. **MediaWiki**: Позволяет создавать и редактировать страницы. Данные сохраняются в volume `mediawiki_data`, а база данных размещена в контейнере `db-mediawiki`. +2. **WordPress**: Система управления контентом, использует volume `wordpress_data` для хранения файлов и контейнер `db-wordpress` для базы данных. +3. **Redmine**: Баг-трекер, который хранит данные в volume `redmine_data` и использует контейнер `db-redmine` для MySQL. + +Каждый сервис настроен для подключения к своей базе данных через переменные среды. + +## Тестирование + +После запуска убедитесь, что: +- MediaWiki доступен по адресу [http://localhost:8081](http://localhost:8081). +- WordPress доступен по адресу [http://localhost:8082](http://localhost:8082). +- Redmine доступен по адресу [http://localhost:8083](http://localhost:8083). + +[Видео](https://disk.yandex.ru/i/9ZTcVf5P2dkiNQ) +--- diff --git a/kosheev_maksim_lab_1/screenshot.png b/kosheev_maksim_lab_1/screenshot.png new file mode 100644 index 0000000..0d9ed3c Binary files /dev/null and b/kosheev_maksim_lab_1/screenshot.png differ