forked from Alexey/DAS_2024_1
Compare commits
1 Commits
polevoy_se
...
emelyanov_
| Author | SHA1 | Date | |
|---|---|---|---|
| 7af877c37a |
6
.idea/.gitignore
generated
vendored
Normal file
6
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
/DAS_2024_1.iml
|
||||
/modules.xml
|
||||
/vcs.xml
|
||||
33
emelyanov_artem_lab_1/README.md
Normal file
33
emelyanov_artem_lab_1/README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Docker Compose: PostgreSQL, RabbitMQ, Nginx
|
||||
|
||||
## Описание проекта
|
||||
|
||||
Этот проект разворачивает три сервиса с помощью Docker Compose:
|
||||
1. **PostgreSQL** — реляционная база данных.
|
||||
2. **RabbitMQ** — брокер сообщений с панелью управления.
|
||||
3. **Nginx** — веб-сервер и реверс-прокси.
|
||||
|
||||
|
||||
## Команды для запуска
|
||||
|
||||
Чтобы развернуть и запустить проект, выполните следующие шаги:
|
||||
1. Убедитесь, что у вас установлен Docker и Docker Compose.
|
||||
2. Перейдите в директорию с файлом docker-compose.yml.
|
||||
3. Запустите сервисы командой: docker-compose up --build
|
||||
|
||||
## Сервисы и порты
|
||||
1. **PostgreSQL:**
|
||||
**Порт:** 5432
|
||||
**Доступ:** Локально, через любые приложения, подключающиеся к базе данных PostgreSQL.
|
||||
|
||||
|
||||
2. **RabbitMQ:**
|
||||
**Порт для приложений:** 5672
|
||||
**Панель управления RabbitMQ:** Доступна по адресу [http://localhost:15672/](http://localhost:15672/) (логин: `user`, пароль: `password`).
|
||||
|
||||
|
||||
3. **Nginx:**
|
||||
**Порт:** 80
|
||||
**Назначение:** Используется как реверс-прокси для распределения трафика.
|
||||
|
||||
## Видео https://drive.google.com/file/d/1qzc_IFZBFkUVGJ97bkcsKpbwn8pw3Hay/view
|
||||
34
emelyanov_artem_lab_1/docker-compose.yml
Normal file
34
emelyanov_artem_lab_1/docker-compose.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
# База данных PostgreSQL
|
||||
postgres:
|
||||
image: postgres:15
|
||||
container_name: postgres-db
|
||||
environment:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_DB: mydb
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
# RabbitMQ
|
||||
rabbitmq:
|
||||
image: rabbitmq:3-management
|
||||
container_name: rabbitmq
|
||||
environment:
|
||||
RABBITMQ_DEFAULT_USER: user
|
||||
RABBITMQ_DEFAULT_PASS: password
|
||||
ports:
|
||||
- "5672:5672" # для приложений
|
||||
- "15672:15672" # для панели управления
|
||||
|
||||
# Nginx для реверс-прокси (если нужно для других сервисов)
|
||||
nginx:
|
||||
image: nginx:latest
|
||||
container_name: nginx
|
||||
ports:
|
||||
- "80:80"
|
||||
depends_on:
|
||||
- rabbitmq
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
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:
|
||||
@@ -1,25 +0,0 @@
|
||||
# Лабораторная работа №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)
|
||||
Reference in New Issue
Block a user