From db8939f045229c385170ebb1fd293022d75d2bb6 Mon Sep 17 00:00:00 2001 From: "kurushina023@mail.ru" Date: Thu, 5 Dec 2024 18:43:39 +0400 Subject: [PATCH] kurushina_ksenia_lab_1 is ready --- kurushina_ksenia_lab_1/README.md | 126 ++++++++++++++++++++++ kurushina_ksenia_lab_1/docker-compose.yml | 44 ++++++++ kurushina_ksenia_lab_1/lab_1.png | Bin 0 -> 26922 bytes 3 files changed, 170 insertions(+) create mode 100644 kurushina_ksenia_lab_1/README.md create mode 100644 kurushina_ksenia_lab_1/docker-compose.yml create mode 100644 kurushina_ksenia_lab_1/lab_1.png diff --git a/kurushina_ksenia_lab_1/README.md b/kurushina_ksenia_lab_1/README.md new file mode 100644 index 0000000..a87803f --- /dev/null +++ b/kurushina_ksenia_lab_1/README.md @@ -0,0 +1,126 @@ +# Лабораторная работа №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://vkvideo.ru/video475766395_456239172 \ No newline at end of file diff --git a/kurushina_ksenia_lab_1/docker-compose.yml b/kurushina_ksenia_lab_1/docker-compose.yml new file mode 100644 index 0000000..788ab2e --- /dev/null +++ b/kurushina_ksenia_lab_1/docker-compose.yml @@ -0,0 +1,44 @@ +services: + mediawiki: # определение сервиса mediawiki + image: mediawiki:1.35 # образ MediaWiki версии 1.35 + ports: # проброс порта + - "8080:80" + volumes: # настройки тома + - ./mediawiki-images:/var/www/html/images + + wordpress: # определение сервиса wordpress + image: wordpress:latest # образ wordpress последней версии + 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 + + db_wp: # бд для wordpress + image: mysql:5.7 # используем mysql версии 5.7 + environment: # переменные окружения + - MYSQL_ROOT_PASSWORD=rootpassword + - MYSQL_DATABASE=wpdb + - MYSQL_USER=admin + - MYSQL_PASSWORD=admin123 + volumes: # настройки тома + - db_wp-data:/var/lib/mysql + + redmine: # определение сервиса redmine + image: redmine:latest # образ redmine последней версии + ports: # проброс порта + - "8082:3000" + volumes: # настройки тома + - ./redmine/files:/usr/src/redmine/files + +# определение томов, используемых для хранения данных +volumes: + mediawiki-data: + db_wp-data: + redmine-data: \ No newline at end of file diff --git a/kurushina_ksenia_lab_1/lab_1.png b/kurushina_ksenia_lab_1/lab_1.png new file mode 100644 index 0000000000000000000000000000000000000000..174fb83abcc25c9e5a0b7d4daeda970877be55de GIT binary patch literal 26922 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 Blg9u6 literal 0 HcmV?d00001 -- 2.25.1