# Отчет по лабораторной работе 1

## Описание
Docker Compose используется для одновременного управления несколькими контейнерами, входящими в состав приложения. Он позволяет хранить все настройки проекта в одном контейнере, что позволяет потом беспроблемно использовать те же настройки проекта на другом сервере. docker-compose.yml позволяет настраивать и документировать все зависимости служб приложения. В нем указываются образ, порт(который можно пробросить), окрущающие среды, томы и зависимости (если нужно). 

## Описание docker-compose.yml
Были выбраны следующие сервисы:

1. Postgres
2. Redmine
3. Gitea

В файле у каждого сервиса пробрасывается порт. Каждый сервис содержит том, который используются для хранения данных. Запуск Redmine и Gitea имеют зависимость от Postgres, чтобы они имели возможность накатить миграции и заполнить таблицы после создания базы. У каждого сервиса заполнен паарметр environment, где указываются данные для БД. 

## Инструкция по запуску

1. Запустить приложение Docker Hub
2. Открыть консоль с помощью команды cd перейти к папке, где находится файл docker-compose.yml
3. Ввести команду для поднятия контейнеров
```
docker compose up -d
```
Дожидаемся запуска сервисов:
```
[+] Running 3/3
 ✔ Container yakovleva_julia_lab_1-postgres-1  Started                                                             0.5s
 ✔ Container yakovleva_julia_lab_1-gitea-1     Started                                                             1.2s
 ✔ Container yakovleva_julia_lab_1-redmine-1   Started                                                             1.1s
```

4. Убедиться, что сервисы успешно запущены можно по команде:
```
docker compose ps
```
Отобразится таблица с запущенными сервисами:
```
NAME                               IMAGE                COMMAND                  SERVICE    CREATED          STATUS         PORTS
yakovleva_julia_lab_1-gitea-1      gitea/gitea:1.22.2   "/usr/bin/entrypoint…"   gitea      19 minutes ago   Up 6 seconds   22/tcp, 0.0.0.0:3002->3000/tcp
yakovleva_julia_lab_1-postgres-1   postgres:16.4        "docker-entrypoint.s…"   postgres   19 minutes ago   Up 6 seconds   0.0.0.0:5433->5432/tcp
yakovleva_julia_lab_1-redmine-1    redmine:latest       "/docker-entrypoint.…"   redmine    19 minutes ago   Up 6 seconds   0.0.0.0:3003->3000/tcp
```

Также можно посомтреть логи каждого севриса при вводе команды:
```
docker compose logs -ft (название сервиса)
```
-ft необходим для того, чтобы читать логи сервиса в реальном времени 

## Видео
[Видео](https://disk.yandex.ru/i/Ds2f4xO8vQ8XPA) работоспособности.