# Лабораторная работа №1 - Знакомство с docker и docker-compose ## Задание Развернуть 3 сервиса в контейнерах docker через docker-compose. Необходимые требования: * Несколько контейнеров. * Хотя бы один volume. * Хотя бы один порт, проброшенный на хост. * Разворачивание системы должно пройти до конца. ## Запуск работы: Работа программы начинается после ввода в терминале команды: ``` docker-compose up -d ``` ## Описание программы: Сначала задаем основную структуру ```services:```. В этом разделе определяются сервисы, которые будут работать вместе. Сервисы: ### mediawiki ``` mediawiki: image: mediawiki:1.35 ports: - "8080:80" volumes: - ./mediawiki-images:/var/www/html/images ``` Задаем образ сборки, указываем используемую версию: ``` image: mediawiki:1.35 ``` Указываем порт: ``` ports: - "8080:80" ``` Указываем том для хранения данных: ``` volumes: - ./mediawiki-images:/var/www/html/images ``` ### redmine Для сервиса redmine код будет выглядеть аналогично сервису mediawiki: ``` redmine: # определение сервиса redmine image: redmine:latest # образ redmine последней версии ports: # проброс порта - "8082:3000" volumes: # настройки тома - ./redmine/files:/usr/src/redmine/files ``` ### wordpress ``` wordpress: image: wordpress:latest ports: - "8081:80" environment: - WORDPRESS_DB_HOST=db_wp - WORDPRESS_DB_USER=admin - WORDPRESS_DB_PASSWORD=admin123 - WORDPRESS_DB_NAME=wpdb volumes: - ./wordpress:/var/www/html depends_on: - db_wp ``` Для сервиса wordpress добавятся переменные окружения ``` environment: - WORDPRESS_DB_HOST=db_wp - WORDPRESS_DB_USER=admin - WORDPRESS_DB_PASSWORD=admin123 - WORDPRESS_DB_NAME=wpdb volumes: ``` и зависимости ``` depends_on: - db_wp ``` А также база данных ``` db_wp: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=rootpassword - MYSQL_DATABASE=wpdb - MYSQL_USER=admin - MYSQL_PASSWORD=admin123 volumes: - db_wp-data:/var/lib/mysql ``` # Скриншоты работы программы: Запуск программы в терминале ![](lab_1.png "") # Видеозапись работы программмы https://vk.com/video174596752_456239390