4 / отчет
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра Программная инженерия
ОТЧЕТ
по лабораторной работе №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:
Теперь все работает, проверим:
Заключение
В ходе выполнения лабораторной работы были успешно решены следующие задачи:
Перечисление выполненных задач и их результаты.
Контрольные вопросы
Ответы на контрольные вопросы лабораторной работы.
