Merge pull request 'gapon_nikolay_lab_1' (#364) from gapon_nikolay_lab_1 into main

Reviewed-on: #364
This commit is contained in:
Alexey 2025-01-02 12:55:25 +04:00
commit 4f21ceda8e
3 changed files with 108 additions and 0 deletions

View File

@ -0,0 +1,33 @@
# Лабораторная работа 1 - Знакомство с Docker и Docker Compose
## Гапон Николай // ИСЭбд-41
# Описание работы
> Цель
Освоение технологий контейнеризации для современных приложений.
> Задачи
1. Установка и настройка Docker Desktop.
2. Изучение базовых принципов работы Docker.
3. Ознакомление с Docker Compose.
4. Развёртывание сервисов.
5. Подготовка отчёта о проделанной работе.
> Ход выполнения работы
1. Изучить официальную документацию Docker и статьи на Habr.
2. Скачать и установить Docker Desktop.
3. Найти на Docker Hub примеры запуска Gitea, MediaWiki и PostgreSQL с помощью Docker Compose.
4. Выполнить команду `docker-compose up` в терминале.
5. Устранить ошибки, если они возникнут.
6. Записать демонстрационное видео работы сервисов.
7. Запушить изменения в ветку на Git.
8. Создать Merge Request (MR) для проверки.
> Инструкция по запуску
1. Скачать и установить Docker, если ещё не установлен
2. Перейти в gapon_nikolay_lab_1 (cd ./gapon_nikolay_lab_1/)
3. Выполнить в терминале 'docker-compose up'
4. Проверить порты, на которых docker поднял контейнеры
> Видео демонстрация работы
https://disk.yandex.ru/i/TgQoHrpZrZlGLA

View File

@ -0,0 +1,69 @@
version: '3.8'
# Определение сервисов
services:
# Сервис базы данных PostgreSQL
db:
image: postgres:latest # Готовый образ PostgreSQL
container_name: postgres_db
restart: always
environment:
- POSTGRES_DB=${POSTGRES_DB:-mydb} # Имя БД
- POSTGRES_USER=${POSTGRES_USER:-admin} # Пользователь БД
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-admin} # Пароль пользователя БД
volumes:
- db_data:/var/lib/postgresql/data # Монтирование тома для хранения данных БД
networks:
- app_network
# Сервис Gitea
gitea:
image: gitea/gitea:latest # Готовый образ Gitea
container_name: gitea
restart: always
ports:
- "${GITEA_WEB_PORT:-3000}:3000" # Проброс веб-порта
- "${GITEA_SSH_PORT:-2222}:22" # Проброс SSH-порта
volumes:
- gitea_data:/data # Монтирование тома для постоянного хранения данных
environment:
- USER_UID=1000 # UID пользователя внутри контейнера
- USER_GID=1000 # GID пользователя внутри контейнера
- DB_TYPE=postgres
- DB_HOST=db:5432
- DB_NAME=${POSTGRES_DB:-mydb}
- DB_USER=${POSTGRES_USER:-admin}
- DB_PASSWD=${POSTGRES_PASSWORD:-admin}
depends_on:
- db # Gitea запускается после PostgreSQL
networks:
- app_network
# Сервис MediaWiki
mediawiki:
image: mediawiki:latest # Готовый образ MediaWiki
container_name: mediawiki
restart: always
ports:
- "${MEDIAWIKI_PORT:-8080}:80" # Проброс порта
volumes:
- mediawiki_data:/var/www/html # Монтирование тома для постоянного хранения данных
environment:
- MEDIAWIKI_DB_HOST=db # Хост базы данных
- MEDIAWIKI_DB_NAME=${POSTGRES_DB:-mydb} # Имя БД для MediaWiki
- MEDIAWIKI_DB_USER=${POSTGRES_USER:-admin} # Пользователь БД
- MEDIAWIKI_DB_PASSWORD=${POSTGRES_PASSWORD:-admin} # Пароль пользователя БД
depends_on:
- db # MediaWiki запускается после PostgreSQL
networks:
- app_network
# Определение volumes для хранения данных вне контейнеров
volumes:
db_data:
gitea_data:
mediawiki_data:
networks:
app_network:
driver: bridge

6
gapon_nikolay_lab_1/env Normal file
View File

@ -0,0 +1,6 @@
POSTGRES_DB=mydb
POSTGRES_USER=admin
POSTGRES_PASSWORD=admin
GITEA_WEB_PORT=3000
GITEA_SSH_PORT=2222
MEDIAWIKI_PORT=8080