DAS_2024_1/pupkov_alexey_lab_1/README.md

93 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа №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
Система для обучения, на которой построена <https://lms.ulstu.ru>.
6. gitea
Сервис для хранения репозиториев git, на котором работает этот репозиторий.
Требования и docker-compose:
* Несколько контейнеров.
* Хотя бы один volume.
* Хотя бы один порт, проброшенный на хост.
При этом разворачивание системы должно пройти до конца.
Например, должен быть создан администратор и система должна корректно функционировать.
Это необходимо будет предоставить в отчёте, поэтому не забывайте делать скриншоты.
**Выбранные сервисы:**
1. mediawiki
2. wordpress
3. gitea
![image1.png](./image1.png)
### Объяснение кода:
1. Сеть
Создание сети: \
Определена сеть gitea для соединения контейнеров Gitea. \
external: false: Сеть создаётся автоматически и не является внешней.
2. Сервисы
MediaWiki \
Сервис mediawiki \
image: mediawiki: Используется официальный образ MediaWiki. \
restart: always: Контейнер будет автоматически перезапускаться при сбое. \
ports: - 1337:80: Перенаправление порта 80 контейнера на порт 1337 хоста. \
links: - mediawiki_database: Связь с контейнером mediawiki_database. \
volumes: - images:/var/www/html/images: Том для хранения загруженных изображений. \
3. Сервис mediawiki_database \
image: mariadb: Образ MariaDB для базы данных. \
environment: \
MYSQL_DATABASE: my_wiki: Создание базы данных с именем my_wiki. \
MYSQL_USER: wikiuser: Создание пользователя wikiuser. \
MYSQL_PASSWORD: example: Пароль для пользователя.
MYSQL_RANDOM_ROOT_PASSWORD: 'yes': Генерация случайного пароля для root. \
volumes: - mediawiki_db:/var/lib/mysql: Том для хранения данных базы.
4. WordPress \
Сервис wp_db (база данных WordPress) \
image: mariadb:10.6.4-focal: Версия образа MariaDB. \
command: Задаёт плагин аутентификации. \
volumes: - wp_db_data:/var/lib/mysql: Том для хранения данных базы. \
environment: \
MYSQL_ROOT_PASSWORD=somewordpress: Пароль для root. \
MYSQL_DATABASE=wordpress, MYSQL_USER=wordpress, MYSQL_PASSWORD=wordpress: Параметры базы данных. \
expose: - 3306 - 33060: Доступность портов для связи между контейнерами. \
5. Сервис wordpress \
image: wordpress:latest: Образ WordPress. \
volumes: - wp_data:/var/www/html: Том для данных сайта. \
ports: - 52384:80: Доступ к сайту через порт 52384. \
environment: Переменные для подключения к базе wp_db. \
6. Gitea \
Сервис server \
image: gitea/gitea:1.22.3: Образ Gitea версии 1.22.3. \
container_name: gitea: Имя контейнера. \
environment: Параметры UID и GID пользователя. \
networks: - gitea: Подключение к сети gitea. \
volumes: \
gitea:/gitea:/data: Том для данных. \
/etc/timezone:/etc/timezone:ro, /etc/localtime:/etc/localtime:ro: Синхронизация времени. \
ports: \
3000:3000: Веб-доступ через порт 3000. \
222:22: SSH доступ через порт 222. \
7. Тома \
Определены тома для хранения данных всех сервисов (images, mediawiki_db, wp_db_data, wp_data, gitea).
[Ссылка на демонстрацию работы программы](https://vk.com/video547368103_456239599?list=ln-1MGFZQHLn8gSM3rbLg )