diff --git a/vaksman_valerya_lab_1/.env b/vaksman_valerya_lab_1/.env new file mode 100644 index 0000000..c03a118 --- /dev/null +++ b/vaksman_valerya_lab_1/.env @@ -0,0 +1,4 @@ +DB_HOST = db +DB_USER = wordpress +DB_PASSWORD = wordpress +DB_NAME = wordpress \ No newline at end of file diff --git a/vaksman_valerya_lab_1/.gitignote b/vaksman_valerya_lab_1/.gitignote new file mode 100644 index 0000000..27d0928 --- /dev/null +++ b/vaksman_valerya_lab_1/.gitignote @@ -0,0 +1 @@ +mediawiki_data/ \ No newline at end of file diff --git a/vaksman_valerya_lab_1/1.png b/vaksman_valerya_lab_1/1.png new file mode 100644 index 0000000..92bd93e Binary files /dev/null and b/vaksman_valerya_lab_1/1.png differ diff --git a/vaksman_valerya_lab_1/README.md b/vaksman_valerya_lab_1/README.md new file mode 100644 index 0000000..04e98a9 --- /dev/null +++ b/vaksman_valerya_lab_1/README.md @@ -0,0 +1,129 @@ +# Лабораторная работа №1 - Знакомство с docker и docker-compose + +## Задание + +Разверните 3 сервиса на выбор в контейнерах docker с помощью docker-compose, учитывая следующие требования: + +* Несколько контейнеров. +* Хотя бы один volume. +* Хотя бы один порт, проброшенный на хост. +* Разворачивание системы должно пройти до конца. + +## Запуск + +Введение в терминале команды: +``` +docker-compose up -d +``` + +# Выбранные сервисы + + 1. ```db``` - самая новая версия БД MaraiDB + + 2. ```phpmyadmin``` - система управления базой данных + + 3. ```mediawiki``` - движок вики + + 4. ```wordpress``` - платформа для управления контентом + + +## Описание работы: + +Были развёрнуты следующие сервисы: + +### phpmyadmin + +``` +phpmyadmin: + depends_on: + - db + image: phpmyadmin + hostname: php_my_admin + container_name: php_my_admin + volumes: # см. конец файла + - php_my_admin_data:/var/www/html + ports: + - 8080:80 + restart: always + environment: + PMA_ARBITRARY: 1 + TZ: "Europe/Moscow" + PMA_HOST: ${DB_HOST} + PMA_USER : ${DB_USER} + PMA_PASSWORD : ${DB_PASSWORD} +``` + +Этот код представляет собой часть файла конфигурации ```Docker Compose```, который используется для управления многоконтейнерными приложениями в Docker. + +#### Объяснение работы кода: + +Эта строка отвечает за образ сброки: +``` +image: phpmyadmin +``` +Задание имени контейнера: +``` +container_name: php_my_admin +``` +Проброс портов: +``` +ports: + - 8080:80 +``` +Тома для хранения данных: +``` +volumes: + - .php_my_admin_data:/var/www/html + +``` +Переменные окружения для Drupal +``` +environment: + PMA_ARBITRARY: 1 + TZ: "Europe/Moscow" + PMA_HOST: ${DB_HOST} + PMA_USER : ${DB_USER} + PMA_PASSWORD : ${DB_PASSWORD} + +``` +Аналогично со другими сервисами: + +### mediawiki + +``` + image: mediawiki:latest # образ MediaWiki + container_name: mediawiki_app + volumes: # см. конец файла + - ./mediawiki_data:/var/www/html/mediawiki + ports: + - "8088:80" + restart: always +``` + +### Wordpress + +``` + depends_on: + - db + image: wordpress:latest + hostname: wp_app + container_name: wp_app + volumes: # см. конец файла + - wordpress_data:/var/www/html + ports: + - "8000:80" + restart: always + user: www-data + environment: # секция настроек для подключения wordpress к БД + TZ: "Europe/Moscow" + WORDPRESS_DB_HOST: ${DB_HOST} + WORDPRESS_DB_USER: ${DB_USER} + WORDPRESS_DB_PASSWORD: ${DB_PASSWORD} + WORDPRESS_DB_NAME: ${DB_NAME} +``` +# Скриншот работы +Панель консоли +![](1.png "") + +# ВК +https://vk.com/video256017065_456239870?list=ln-qWUdZke5z53x940ZHv \ No newline at end of file diff --git a/vaksman_valerya_lab_1/docker-compose.yaml b/vaksman_valerya_lab_1/docker-compose.yaml new file mode 100644 index 0000000..94bf42e --- /dev/null +++ b/vaksman_valerya_lab_1/docker-compose.yaml @@ -0,0 +1,66 @@ +services: + db: # контейнер базы данных + image: mariadb:latest # самая свежая версия MySql + hostname: wp_database # хост контейнера внутри стистемы докер + container_name: wp_database # имя контейнера с системе docker + volumes: # см. конец файла + - db_data:/var/lib/mysql + restart: always + environment: # cекция настроек для БД + TZ: "Europe/Moscow" + MYSQL_ROOT_PASSWORD: somewordpress + MYSQL_DATABASE: ${DB_NAME} + MYSQL_USER: ${DB_USER} + MYSQL_PASSWORD: ${DB_PASSWORD} + + phpmyadmin: # СУБД для БД + depends_on: # запускаем после MySql + - db + image: phpmyadmin # скачиваем уже существующие образы для построения и запуска наших контейнеров + hostname: php_my_admin + container_name: php_my_admin + volumes: # см. конец файла + - php_my_admin_data:/var/www/html + ports: + - 8080:80 + restart: always + environment: + PMA_ARBITRARY: 1 # разрешение на подключения к любому серверу + TZ: "Europe/Moscow" + PMA_HOST: ${DB_HOST} # сразу заходим под нашими паролями и учёткой + PMA_USER : ${DB_USER} + PMA_PASSWORD : ${DB_PASSWORD} + + wordpress: # контейнер wordpress + depends_on: # запускаем после MySql + - db + image: wordpress:latest # самая свежая версия MySql + hostname: wp_app + container_name: wp_app + volumes: # см. конец файла + - wordpress_data:/var/www/html + ports: + - "8000:80" + restart: always + user: www-data + environment: # секция настроек для подключения wordpress к БД + TZ: "Europe/Moscow" + WORDPRESS_DB_HOST: ${DB_HOST} + WORDPRESS_DB_USER: ${DB_USER} + WORDPRESS_DB_PASSWORD: ${DB_PASSWORD} + WORDPRESS_DB_NAME: ${DB_NAME} + + mediawiki: # контейнер mediawiki + image: mediawiki:latest # образ MediaWiki + container_name: mediawiki_app + volumes: # см. конец файла + - ./mediawiki_data:/var/www/html/mediawiki + ports: + - "8088:80" + restart: always + +volumes: # для локального хранения сессионных данных из работы контейнеров + db_data: {} + wordpress_data: {} + php_my_admin_data: {} + mediawiki: {} \ No newline at end of file