Merge pull request 'kuzarin_maxim_lab_1' (#2) from kuzarin_maxim_lab_1 into main
Reviewed-on: #2
This commit is contained in:
commit
48711e14e3
14
kuzarin_maxim_lab_1/.env
Normal file
14
kuzarin_maxim_lab_1/.env
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# Переменные для базы данных
|
||||||
|
POSTGRES_TAG=latest # Берём последнююю версию postgres. Пока это не принципиально
|
||||||
|
POSTGRES_DATA_DIR=./postgres-data
|
||||||
|
POSTGRES_PASSWORD=postgres_password
|
||||||
|
|
||||||
|
# Переменные для Web gui для БД
|
||||||
|
DB_GUI_IMAGE=adminer # Самый легковесный Web gui для postgres(и не только)
|
||||||
|
DB_GUI_CONTEINER_PORT=8080
|
||||||
|
|
||||||
|
# Переменные для брокера сообщения RabbitMQ
|
||||||
|
RABBIT_TAG=3.10.7-management # Тут есть встроенный Web интерфейс
|
||||||
|
RABBIT_DATA_DIR=./rabbit-data
|
||||||
|
RABBIT_USERNAME=user
|
||||||
|
RABBIT_PASSWORD=password
|
2
kuzarin_maxim_lab_1/.gitignore
vendored
Normal file
2
kuzarin_maxim_lab_1/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
postgres-data/
|
||||||
|
rabbit-data/
|
27
kuzarin_maxim_lab_1/README.md
Normal file
27
kuzarin_maxim_lab_1/README.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Лабораторная работа 1
|
||||||
|
Данная работа посвящена работе с docker compose и поднятию сервисов, необходимых для последующего выполнения работ.
|
||||||
|
## Описание
|
||||||
|
В качестве сервисов были выбраны:
|
||||||
|
- СУБД - Postgres
|
||||||
|
- Web интерфейс для БД Postgres - Adminer
|
||||||
|
- Брокер сообщений - RabbitMQ (+ Web интерфейс)
|
||||||
|
## Запуск
|
||||||
|
Для запуска лабораторной работы необходимо иметь запущенный движок Docker на устройстве.
|
||||||
|
Необходимо перейти в папку, где располагается данный файл. Далее открыть терминал и ввести команду:
|
||||||
|
```
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
В данном случае флаг `-d` не обязателен. Он лишь позволит оставить консоль интерактивной (запускает все контейнеры в фоновом режиме).
|
||||||
|
В случае, если в консоли отобразился подобный текст и появилась возможность вводить команды - сервисы успешно запущены.
|
||||||
|
```
|
||||||
|
[+] Running 4/4
|
||||||
|
✔ Network kuzarin_maxim_lab_1_default Created 0.0s
|
||||||
|
✔ Container kuzarin_maxim_lab_1-db-1 Started 0.7s
|
||||||
|
✔ Container kuzarin_maxim_lab_1-rabbit-1 Started 0.7s
|
||||||
|
✔ Container kuzarin_maxim_lab_1-db_web_gui-1 Started 0.7s
|
||||||
|
```
|
||||||
|
## Описание compose файла
|
||||||
|
В docker-compose файле все уникальные строчки помечены комментариями. Они описывают их предназначения, и иногда обосновывают принятые решения.
|
||||||
|
Так же комментарии присутствуют в файле .env, где хранятся переменные среды, нужные для работы compose файла.
|
||||||
|
## Видео демонстрация
|
||||||
|
Был записан видеоролик, демонстрирующий процесс запуска и работы сервисов. Он расположен по [адресу](https://drive.google.com/file/d/1ouUc-3eYhaJIR0HhD4b_Lj73oxEqORpA/view?usp=sharing)
|
31
kuzarin_maxim_lab_1/docker-compose.yml
Normal file
31
kuzarin_maxim_lab_1/docker-compose.yml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
services:
|
||||||
|
db: # База данных
|
||||||
|
image: postgres:${POSTGRES_TAG} # Берём тег образа из переменной среды
|
||||||
|
restart: always # Автоматический перезапуск контейнера, если он упал
|
||||||
|
ports: # проброс портов
|
||||||
|
- 5432:5432 # Так как на хосте нет postgres, порт по умолчанию можно использовать свободно
|
||||||
|
volumes: # Указываем проброс папок
|
||||||
|
- ${POSTGRES_DATA_DIR}:/var/lib/postgresql/data # Данные postgres хранятся в /var/lib/postgresql/data.
|
||||||
|
# А на хосте монтируем туда, куда указано в переменной
|
||||||
|
environment: # Указываем переменные среды
|
||||||
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} # Пароль от учётки postgres берём из переменных среды
|
||||||
|
|
||||||
|
db_web_gui: # Интерфейс для доступа к БД (на компе нет PgAdmin)
|
||||||
|
image: ${DB_GUI_IMAGE} # Их есть много разных, так что имя образа из env
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 8080:${DB_GUI_CONTEINER_PORT} # Так как Web GUI разные, то и порт может быть разный. Берём из env
|
||||||
|
|
||||||
|
rabbit: # Rabbit тоже понадобится в будущем
|
||||||
|
image: rabbitmq:${RABBIT_TAG} # Определяем тегом версию
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 5672:5672 # Это порт доступа к брокеру (если буду разрабатывать на локале)
|
||||||
|
- 8081:15672 # А это порт для Web GUI. Для удобста на хосте это 8081, близко к БД
|
||||||
|
volumes:
|
||||||
|
- ${RABBIT_DATA_DIR}:/var/lib/rabbitmq # У Rabbit так же можно пробросить папку, чтобы не терять данные
|
||||||
|
environment:
|
||||||
|
RABBITMQ_DEFAULT_USER: ${RABBIT_USERNAME} # Логин для пользователя Rabbit Берём из env
|
||||||
|
RABBITMQ_DEFAULT_PASS: ${RABBIT_PASSWORD} # Пароль для пользователя Rabbit. Берём из env
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user