Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

4 / отчет

.docx
Скачиваний:
0
Добавлен:
27.09.2026
Размер:
468 Кб
Скачать
☆

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

Кафедра Программная инженерия

ОТЧЕТ

по лабораторной работе №4

по дисциплине «Основы DevOps»

Тема: «Docker Compose»

Выполнил: студент группы БВТ2402

Кудряшов Вадим Георгиевич

Проверил: Тимчук А.В.

Москва, 2025

Цель работы

1. Выполнить задание из README файла в репозитории проекта.

Индивидуальное задание

Я не хочу писать код во встроенном редакторе nano, я не самоубийца) Поэтому:

Установили сервер openssh-server чтобы можно было подключиться к Ubuntu удаленно, по SSH.

Качаем на VScode эту шнягу

Тык сюда

Тут тык на плюсик и добавляем наш удаленный сервак, сначала запросит строку в формате username@ip

username -–имя пользователя на виртуальной машине

ip – находится командой ip a

Нужный нам будет начинаться со 192.x.x.x

Дальше все должно быть более менее понятно.

Создали файл docker-compose.yml

Указали путь до файла для сборки

Задали две сети frontend и backend

Сверху – инструкция по подключению конкретного контейнера к сети

Снизу – объявление самих сетей.

Добавили переменную окружения

Содержимое файла .env не трогали, так как, оно в целом удовлетворяет нам

А вот сам файл переименовали (до этого он назывался .env.example).

Перейдем к описанию сервиса db

указали образ postgres последней версии, задали сеть backend и подключили том к директории внутри контейнера, сам том зарегистрировали как db_data.

**В 13 СТРОКЕ ПОМЕНЯТЬ image: postgers:Latest на image: postgres**

Указали переменные окружения, данные взяли из файла .env, они должны строго с ними совпадать, чтобы api мог подключится к db.

Опишем сервис nginx

Указали файл сборки

задали сеть

прокинули 80 порт, как и требовалось

смонтировали билд фронта через bind mount – механизм в Docker, благодаря которому можно привязать конкретный файл с хоста к определенному пути внутри контейнера

Поднимем сервисы:

Почему то поднялся только один сервис

Другие сервисы запускались но сразу упали, изучив логи (не без помощи Gemini), пришел к выводу что образ postgres v18+ привел к ошибке инициализации из за изменения структуры директорий базы данных, откатился на версию postgres 16:

Теперь все работает, проверим:

Заключение

В ходе выполнения лабораторной работы были успешно решены следующие задачи:

  1. Перечисление выполненных задач и их результаты.

Контрольные вопросы

Ответы на контрольные вопросы лабораторной работы.