diff --git a/aleikin_artem_lab_1/README.md b/aleikin_artem_lab_1/README.md new file mode 100644 index 0000000..3d364ec --- /dev/null +++ b/aleikin_artem_lab_1/README.md @@ -0,0 +1,32 @@ +# Лабораторная работа 1 - Знакомство с Docker и Docker Compose +## ПИбд-42 || Алейкин Артем + +### Описание +В данной лабораторной работе мы разворачиваем три популярных сервиса — MediaWiki и Redmine — с использованием Docker Compose. Каждый сервис работает в своем контейнере и использует общую базу данных PostgreSQL для хранения данных. Мы также настраиваем проброс портов для доступа к веб-интерфейсам сервисов и используем Docker volumes для сохранения данных вне контейнеров. + +### Цель проекта +изучение современных технологий контейнеризации + +### Шаги для запуска: +1. Клонирование репозитория: +``` +git clone <ссылка-на-репозиторий> +cd <папка репозитория> +``` + +2. Запуск контейнеров: +``` +docker-compose up -d +``` + +3. После запуска должны быть доступны следующие контейнеры: + + MediaWiki: http://localhost:8080 + Redmine: http://localhost:8081 + +4. Чтобы остановить контейнеры: +``` +docker-compose down +``` + +Видео демонстрации работы: https://vk.com/video248424990_456239601?list=ln-sCRa9IIiV1VpInn2d1 \ No newline at end of file diff --git a/aleikin_artem_lab_1/docker-compose.yml b/aleikin_artem_lab_1/docker-compose.yml new file mode 100644 index 0000000..837a008 --- /dev/null +++ b/aleikin_artem_lab_1/docker-compose.yml @@ -0,0 +1,45 @@ +services: + mediawiki: + image: mediawiki + container_name: mediawiki + ports: + - "8080:80" # Пробрасываем порт 8080 на хост для доступа к MediaWiki + volumes: + - mediawiki_data:/var/www/html/images # Создаем volume для хранения данных MediaWiki + environment: + - MEDIAWIKI_DB_HOST=db + - MEDIAWIKI_DB_NAME=mediawiki + - MEDIAWIKI_DB_USER=root + - MEDIAWIKI_DB_PASSWORD=example + depends_on: + - db + + redmine: + image: redmine + container_name: redmine + ports: + - "8081:3000" # Пробрасываем порт 8081 на хост для доступа к Redmine + volumes: + - redmine_data:/usr/src/redmine/files # Создаем volume для хранения данных Redmine + environment: + - REDMINE_DB_POSTGRESQL=db + - REDMINE_DB_DATABASE=redmine + - REDMINE_DB_USERNAME=root + - REDMINE_DB_PASSWORD=example + depends_on: + - db + + db: + image: postgres:latest + container_name: db + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: example + POSTGRES_DB: postgres + volumes: + - db_data:/var/lib/postgresql # Volume для базы данных + +volumes: + mediawiki_data: # volume для MediaWiki + redmine_data: # volume для Redmine + db_data: # volume для базы данных