diff --git a/kosheev_maksim_lab_1/docker-compose.yml b/kosheev_maksim_lab_1/docker-compose.yml index 932b043..a5401a6 100644 --- a/kosheev_maksim_lab_1/docker-compose.yml +++ b/kosheev_maksim_lab_1/docker-compose.yml @@ -1,68 +1,88 @@ -version: '3' +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 - ports: - - "8080:80" environment: - WORDPRESS_DB_HOST: db - WORDPRESS_DB_USER: example_user - WORDPRESS_DB_PASSWORD: example_password - WORDPRESS_DB_NAME: example_db + 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 - depends_on: - - db - db: + db-wordpress: image: mysql:5.7 - container_name: wordpress_db + container_name: db-wordpress environment: - MYSQL_DATABASE: example_db - MYSQL_USER: example_user - MYSQL_PASSWORD: example_password - MYSQL_ROOT_PASSWORD: root_password + MYSQL_ROOT_PASSWORD: rootpassword + MYSQL_DATABASE: wordpress + MYSQL_USER: wpuser + MYSQL_PASSWORD: password volumes: - - db_data:/var/lib/mysql + - db_wordpress_data:/var/lib/mysql redmine: image: redmine:latest container_name: redmine - ports: - - "8081:3000" environment: - REDMINE_DB_MYSQL: redmine_db - REDMINE_DB_USERNAME: redmine_user - REDMINE_DB_PASSWORD: redmine_password + REDMINE_DB_MYSQL: db-redmine + REDMINE_DB_USERNAME: redmine + REDMINE_DB_PASSWORD: password + REDMINE_DB_DATABASE: redmine + ports: + - "8083:3000" depends_on: - - redmine_db + - db-redmine + volumes: + - redmine_data:/usr/src/redmine/files - redmine_db: + db-redmine: image: mysql:5.7 - container_name: redmine_db + container_name: db-redmine environment: + MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: redmine - MYSQL_USER: redmine_user - MYSQL_PASSWORD: redmine_password - MYSQL_ROOT_PASSWORD: root_password + MYSQL_USER: redmine + MYSQL_PASSWORD: password volumes: - - redmine_db_data:/var/lib/mysql - - gitea: - image: gitea/gitea:latest - container_name: gitea - ports: - - "8082:3000" - environment: - - USER_UID=1000 - - USER_GID=1000 - volumes: - - gitea_data:/data + - db_redmine_data:/var/lib/mysql volumes: + mediawiki_data: + db_mediawiki_data: wordpress_data: - db_data: - redmine_db_data: - gitea_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 index e69de29..7463771 100644 --- a/kosheev_maksim_lab_1/readmy.md +++ 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) +---