From 4922e9075e4560aa3070c120eaf375ce41b9c960 Mon Sep 17 00:00:00 2001 From: BlasphemyGod Date: Wed, 18 Sep 2024 19:01:17 +0400 Subject: [PATCH] polevoy_sergey_lab_1_completed --- polevoy_sergey_lab_1/docker-compose.yml | 42 +++++++++++++++++++++++++ polevoy_sergey_lab_1/readme.md | 25 +++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 polevoy_sergey_lab_1/docker-compose.yml create mode 100644 polevoy_sergey_lab_1/readme.md diff --git a/polevoy_sergey_lab_1/docker-compose.yml b/polevoy_sergey_lab_1/docker-compose.yml new file mode 100644 index 0000000..9fc0f0d --- /dev/null +++ b/polevoy_sergey_lab_1/docker-compose.yml @@ -0,0 +1,42 @@ +services: # Начало объявления сервисов + gitea: # Указывается название сервиса + image: gitea/gitea:1.22.2 # Указание названия образа (и/или его версии), который будет взят для создания контейнера + restart: always # Указывается политика перезапуска, в данном случае всегда перезапускать контейнер, если он остановился + environment: # Указываются переменные среды + - GITEA__database__DB_TYPE=postgres # Тип базы данных + - GITEA__database__HOST=postgres:5432 # Хост бд. Название сервиса это а-ля доменное имя и внутри сети разрешается в ip нужного контейнера + - GITEA__database__NAME=gitea # Название базы данных + - GITEA__database__USER=superuser # Пользователь базы данных + - GITEA__database__PASSWD=superpassword # Пароль пользователя базы данных + ports: # Перечисляются пробросы портов на хостовую машину. Слева порт хостовой машины, справа порт контейнера + - "3000:3000" # Web интерфейс + - "222:22" # SSH + volumes: # Указываются монтированные тома, папки, файлы. В данном случае в папку /data монтируется объявленный ниже том gitea + - gitea:/data + depends_on: # Указывается зависимость запуска контейнера от другого сервиса, в данном случае запускается только после запуска сервиса бд + - postgres + # Дальше всё по аналогии, различаются лишь названия, переменные окружения, образы, порты и тома + postgres: + image: postgres:14 + restart: always + environment: + - POSTGRES_USER=superuser + - POSTGRES_PASSWORD=superpassword + - POSTGRES_DB=gitea + ports: + - "5432:5432" + volumes: + - postgres:/var/lib/postgresql/data + + rabbitmq: + image: rabbitmq:3-management + environment: + RABBITMQ_DEFAULT_USER: superuser + RABBITMQ_DEFAULT_PASS: superpassword + ports: + - "5672:5672" + - "15672:15672" + +volumes: # Перечисление томов, которые можно использовать как в одном, так и в нескольких сервисах + postgres: + gitea: \ No newline at end of file diff --git a/polevoy_sergey_lab_1/readme.md b/polevoy_sergey_lab_1/readme.md new file mode 100644 index 0000000..a8aae30 --- /dev/null +++ b/polevoy_sergey_lab_1/readme.md @@ -0,0 +1,25 @@ +# Лабораторная работа №1 +В рамках данной лабораторной работы будут развёрнуты следующие сервисы: +1. **Gitea** - система управления версиями +2. **Postgres** - реляционая база данных +3. **Rabbitmq** - брокер сообщений + +Инструкции к запуску контейнеров и пояснения к ним находятся в файле ```docker-compose.yml``` + +## Порядок запуска +#### 1. Установить docker или убедиться, что он установлен +#### 2. Перейти в папку с файлом ```docker-compose.yml``` +#### 3. Выполнить команду в терминале: ```docker-compose up --build --remove-orphans``` + +Проверить успешность запуска можно командой ```docker ps -a```. Если всё прошло успешно, то в терминале будет написано: +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +1a794331b32b gitea/gitea:1.22.2 "/usr/bin/entrypoint…" 20 seconds ago Up 18 seconds 0.0.0.0:3000->3000/tcp, 0.0.0.0:222->22/tcp polevoy_sergey_lab_1-gitea-1 +b5fe33c61c1d rabbitmq:3-management "docker-entrypoint.s…" 20 seconds ago Up 19 seconds 4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp rabbitmq +3d2db73d15c5 postgres:14 "docker-entrypoint.s…" 20 seconds ago Up 19 seconds 0.0.0.0:5432->5432/tcp polevoy_sergey_lab_1-postgres-1 +``` + +Работать со всеми перечисленными сервисами можно сразу после запуска за исключением **gitea**. После первого запуска необходимо зайти на сервис, выполнить первоначальную настройку и создать суперпользователя. + +## Видеодемонстрация работы +### Видео доступно по [ссылке](https://disk.yandex.ru/i/3Out4mUV6NEJuA) \ No newline at end of file