From 27b75d1fc8514e9549e7142390e289a2abd8d861 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B0=D0=B2=D0=B5=D0=BB=20=D0=9F=D1=83=D1=82=D0=B8?= =?UTF-8?q?=D0=BB=D0=B8=D0=BD?= Date: Thu, 14 Nov 2024 21:51:46 +0400 Subject: [PATCH 1/2] putilin_pavel_lab_1 --- putilin_pavel_lab_1/README.md | 168 +++++++++++++++++++++++++ putilin_pavel_lab_1/docker-compose.yml | 67 ++++++++++ 2 files changed, 235 insertions(+) create mode 100644 putilin_pavel_lab_1/README.md create mode 100644 putilin_pavel_lab_1/docker-compose.yml diff --git a/putilin_pavel_lab_1/README.md b/putilin_pavel_lab_1/README.md new file mode 100644 index 0000000..74a22d5 --- /dev/null +++ b/putilin_pavel_lab_1/README.md @@ -0,0 +1,168 @@ +# Лабораторная работа №1 - Знакомство с docker и docker-compose + +**Цель**: изучение современных технологий контейнеризации. + +**Задачи**: + +1. Установить средство контейнеризации docker. +2. Изучить применение и принципы docker. +3. Изучить утилиту docker-compose и структуру файла docker-compose.yml. +4. Развернуть не менее 3х различных сервисов при помощи docker-compose. +5. Оформить отчёт в формате Markdown и создать Pull Request в git-репозитории. + +## Разворачивание сервисов + +Предлагается развернуть не менее 3х сервисов через docker-compose из списка ниже: + +1. **mediawiki** + Движок вики. +2. **redmine** + Система учёта багов, т.е. баг-трекер. +3. **wordpress** + Популярная система управления контентом. +4. **drupal** + Ещё одна популярная система управления контентом. +5. **moodle** + Система для обучения, на которой построена . +6. **gitea** + Сервис для хранения репозиториев git, на котором работает этот репозиторий. + +Требования и docker-compose: + +* Несколько контейнеров. +* Хотя бы один volume. +* Хотя бы один порт, проброшенный на хост. + + +## Ход работы + +1. Установить Docker dekstop +2. В терминале с помощью команды "docker --version" проверить корректность установки +3. Командой "docker-compose --version" проверить версию Docker-Compose +4. Развернуть сервисы + +## Сервисы: + +## WordPress: + +1. Эта строка отвечает за образ сборки: + +image: wordpress:latest + +Используем последний официальный образ WordPress. + +2. Задание имени контейнера: + +container_name: wordpress + +Устанавливается имя контейнера как wordpress. + +3. Проброс портов: + +Порт 80 контейнера пробрасывается на порт 8080 хоста. + +4. Тома для хранения данных: + +volumes: + - wordpress_data:/var/www/html + +Том wordpress_data монтируется в директорию /var/www/html контейнера для хранения данных WordPress. + +5. Переменные окружения для WordPress: + +environment: + WORDPRESS_DB_HOST: db + WORDPRESS_DB_USER: example_user + WORDPRESS_DB_PASSWORD: example_password + WORDPRESS_DB_NAME: example_db + +Здесь задаются параметры для подключения к базе данных: + +WORDPRESS_DB_HOST: адрес базы данных (контейнер с именем db). +WORDPRESS_DB_USER: имя пользователя базы данных. +WORDPRESS_DB_PASSWORD: пароль пользователя базы данных. +WORDPRESS_DB_NAME: имя базы данных. + +6. Зависимость от базы данных: + +depends_on: db + +Указываем, что WordPress зависит от контейнера с базой данных (db), который должен запуститься первым. + +## Redmine: + +1. Эта строка отвечает за образ сборки: + +image: redmine:latest + +Используем последний официальный образ Redmine. + +2. Задание имени контейнера: + +container_name: redmine + +Устанавливается имя контейнера как redmine. + +3. Проброс портов: + +ports:"8090:3000" + +Порт 3000 контейнера пробрасывается на порт 8090 хоста + +4. Переменные окружения для Redmine: + +environment: + REDMINE_DB_MYSQL: redmine_db + REDMINE_DB_USERNAME: redmine_user + REDMINE_DB_PASSWORD: redmine_password + +Задаются параметры для подключения к базе данных: + +REDMINE_DB_MYSQL: имя контейнера базы данных. +REDMINE_DB_USERNAME: имя пользователя базы данных. +REDMINE_DB_PASSWORD: пароль пользователя базы данных. + +5. Зависимость от базы данных: + + +depends_on: + - redmine_db + +Redmine зависит от контейнера с базой данных redmine_db. + +## Gitea: + +1. Эта строка отвечает за образ сборки: + +image: gitea/gitea:latest + +Используем последний официальный образ Gitea. + +2. Задание имени контейнера: + +container_name: gitea + +Устанавливается имя контейнера как gitea. + +3. Проброс портов: + +ports:"8091:3000" + +Порт 3000 контейнера пробрасывается на порт 8091 хоста + +4. Тома для хранения данных: + +volumes: + - gitea_data:/data + +Том gitea_data монтируется в директорию /data контейнера для хранения данных Gitea. + +5. Переменные окружения для Gitea: + +environment: + - USER_UID=1000 + - USER_GID=1000 + +## Ссылка на видео: + +https://drive.google.com/file/d/1ytamJUnLILeb3UfDOzYtiQJxiXHcWpT0/view?usp=sharing \ No newline at end of file diff --git a/putilin_pavel_lab_1/docker-compose.yml b/putilin_pavel_lab_1/docker-compose.yml new file mode 100644 index 0000000..ec08a6c --- /dev/null +++ b/putilin_pavel_lab_1/docker-compose.yml @@ -0,0 +1,67 @@ +services: + wordpress: + image: wordpress:latest + container_name: wordpress + ports: + - "8080:80" + environment: + WORDPRESS_DB_HOST: db + WORDPRESS_DB_USER: example_user + WORDPRESS_DB_PASSWORD: example_password + WORDPRESS_DB_NAME: example_db + volumes: + - wordpress_data:/var/www/html + depends_on: + - db + + db: + image: mysql:latest + container_name: wordpress_db + environment: + MYSQL_DATABASE: example_db + MYSQL_USER: example_user + MYSQL_PASSWORD: example_password + MYSQL_ROOT_PASSWORD: root_password + volumes: + - db_data:/var/lib/mysql + + gitea: + image: gitea/gitea:latest + container_name: gitea + ports: + - "8091:3000" + environment: + - USER_UID=1000 + - USER_GID=1000 + volumes: + - gitea_data:/data + + redmine: + image: redmine:latest + container_name: redmine + ports: + - "8090:3000" + environment: + REDMINE_DB_MYSQL: redmine_db + REDMINE_DB_USERNAME: redmine_user + REDMINE_DB_PASSWORD: redmine_password + depends_on: + - redmine_db + + redmine_db: + image: mysql:latest + container_name: redmine_db + environment: + MYSQL_DATABASE: redmine + MYSQL_USER: redmine_user + MYSQL_PASSWORD: redmine_password + MYSQL_ROOT_PASSWORD: root_password + volumes: + - redmine_db_data:/var/lib/mysql + + +volumes: + wordpress_data: + db_data: + redmine_db_data: + gitea_data: From dc4315d87b8a78ef0caceac7b5e9c9b96269e798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B0=D0=B2=D0=B5=D0=BB=20=D0=9F=D1=83=D1=82=D0=B8?= =?UTF-8?q?=D0=BB=D0=B8=D0=BD?= Date: Thu, 14 Nov 2024 21:59:21 +0400 Subject: [PATCH 2/2] putilin_pavel_lab_1 is ready --- putilin_pavel_lab_1/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/putilin_pavel_lab_1/README.md b/putilin_pavel_lab_1/README.md index 74a22d5..29c382a 100644 --- a/putilin_pavel_lab_1/README.md +++ b/putilin_pavel_lab_1/README.md @@ -163,6 +163,7 @@ environment: - USER_UID=1000 - USER_GID=1000 + ## Ссылка на видео: https://drive.google.com/file/d/1ytamJUnLILeb3UfDOzYtiQJxiXHcWpT0/view?usp=sharing \ No newline at end of file