3.6 KiB
Отчет по лабораторной работе 1
Описание
Docker Compose используется для одновременного управления несколькими контейнерами, входящими в состав приложения. Он позволяет хранить все настройки проекта в одном контейнере, что позволяет потом беспроблемно использовать те же настройки проекта на другом сервере. docker-compose.yml позволяет настраивать и документировать все зависимости служб приложения. В нем указываются образ, порт(который можно пробросить), окрущающие среды, томы и зависимости (если нужно).
Описание docker-compose.yml
Были выбраны следующие сервисы:
- Postgres
- Redmine
- Gitea
В файле у каждого сервиса пробрасывается порт. Каждый сервис содержит том, который используются для хранения данных. Запуск Redmine и Gitea имеют зависимость от Postgres, чтобы они имели возможность накатить миграции и заполнить таблицы после создания базы. У каждого сервиса заполнен паарметр environment, где указываются данные для БД.
Инструкция по запуску
- Запустить приложение Docker Hub
- Открыть консоль с помощью команды cd перейти к папке, где находится файл docker-compose.yml
- Ввести команду для поднятия контейнеров
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
- Убедиться, что сервисы успешно запущены можно по команде:
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 необходим для того, чтобы читать логи сервиса в реальном времени
Видео
Видео работоспособности.