# Отчёт по лабораторной работе №1 Выполнила: студентка гр. ИСЭбд-41 Халитова А.М. ## Разворачивание сервиса MediaWiki Содержимое файла `docker-compose.yml` в папке MediaWiki: ```yaml version: "3.2" services: #описание контейнеров #Контейнер Mysql используется как сервер для запуска mysql: image: mysql:5.7.23 #образ контейнера container_name: mysql hostname: mysql volumes: #подключаем каталог с базой данных - /var/lib/mysql:/var/lib/mysql env_file: #файл с настройками БД для подключения к серверу - ./mysql.env restart: always #Контейнер Mediawiki используется для запуска самого сервиса mediawiki: image: diouxx/mediawiki #образ контейнера container_name : wiki hostname: wiki ports: #указываем по какому порту мы получаем доступ к сервису по адресу http://localhost:8081/ - "8081:80" volumes: #прописываем каталоги для хранения данных контейнера - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - /var/www/html/wiki/:/var/www/html/wiki - ./data/LocalSettings.php:/var/www/html/LocalSettings.php restart: always ``` Далее в командной строке разворачиваем сервис командой `docker-compose up`: ![](shots/shot1.png) Открываем Docker Desktop и проверяем, что контейнер сервера базы данных и MediaWiki созданы и запущены: ![](shot2.png) Переходим на http://localhost:8081: ![](shot3.png) Переходим к установке MediaWiki и прописываем указанные нами в файле `mysql.env` значения хоста, имя пользователя и пароль: ![](shot4.png) ![](shot5.png) ![](shot6.png) Далее заполняем данные страницы вики: ![](shot7.png) И завершаем установку путем скачивания и открытия файла настроек страницы: ![](shot8.png) ## Разворачивание сервиса Wordpress Также в файл `docker-compose.yml` в папке Wordpress прописываем следующий код: ```yaml version: '3.1' #Задаем контейнеры services: #Контейнер Wordpress wordpress: image: wordpress #образ restart: always ports: #на каком порте запускаем - 8080:80 environment: #настройки БД вордпресса для подключения к серверу WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: exampledb volumes: #каталог хранения файлов сервиса - wordpress:/var/www/html db: #Контейнер MySQL image: mysql:5.7 #образ и его версия restart: always environment: #настройки БД для подключения MYSQL_DATABASE: exampledb MYSQL_USER: exampleuser MYSQL_PASSWORD: examplepass MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: #каталог хранения данных БД - db:/var/lib/mysql volumes: wordpress: db: ``` Через командную строку разворачиваем сервис: ![](shot9.png) В Docker Desktop проверяем, что оба контейнера запущены: ![](shot10.png) Теперь переходим на http://localhost:8080: ![](shot11.png) И устанавливаем Wordpress: ![](shot12.png) Далее осуществляем вход и попадаем на главную страницу, что говорит об успешной установке: ![](shot13.png) ![](shot14.png) ## Разворачивание сервиса Redmine Содержимое файла `docker-compose.yml` в папке Redmine: ```yaml version: '3.1' #Задаем контейнеры services: #Контейнер Redmine redmine: image: redmine #образ restart: always ports: #на какой порт запускать - 8082:3000 environment: REDMINE_DB_MYSQL: db REDMINE_DB_PASSWORD: example REDMINE_SECRET_KEY_BASE: supersecretkey #Контейнер базы данных MySQL db: image: mysql:5.7 #образ и версия restart: always environment: #название и пароль админа БД MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: redmine ``` Далее в командной строке разворачиваем сервис командой `docker-compose up`: ![](shot15.png) В Docker Desktop проверяем, что работают все три развернутых сервиса: ![](shot16.png) Переходим на http://localhost:8082: ![](shot17.png) Здесь мы можем выполнить вход как администратор или зарегистрироваться как пользователь. Попробуем зарегистрироваться: ![](shot18.png) Теперь попробуем войти в качестве пользователя: ![](shot19.png) И получаем ответ, что мы не можем этого сделать без подтверждения учетной записи админом. Заходим в качестве администратора под логином и паролем admin/admin: ![](shot20.png) И попадаем в профиль администратора: ![](shot21.png) И так как мы являемся администратором, то в разделе администрирование/пользователи, мы можем подтвердить созданного нами ранее пользователя: ![](shot22.png)