An open API service indexing awesome lists of open source software.

https://github.com/planara/deploy-local

Локальное развертывание проекта через Docker Compose.
https://github.com/planara/deploy-local

docker-compose makefile

Last synced: 18 days ago
JSON representation

Локальное развертывание проекта через Docker Compose.

Awesome Lists containing this project

README

          

Репозиторий для локального запуска проекта через Docker Compose.

В составе репозитория находятся compose-файлы для запуска инфраструктуры и сервисов приложения, а также `Makefile` с готовыми сценариями для удобной работы со стендом.

## Состав

* `docker-compose-infra.yml` — инфраструктурные сервисы:

* PostgreSQL;
* Kafka;
* Zookeeper;
* Kafka UI.

* `docker-compose.yml` — сервисы приложения:

* frontend;
* gateway;
* auth;
* accounts;
* projects;
* files;
* benchmarks.

* `Makefile` — удобные команды для запуска, остановки, просмотра логов и управления локальным стендом.

## Требования

Для запуска необходимы:

* Docker;
* Docker Compose v2.

Дополнительно, для использования команд из `Makefile`:

* `make`;
* bash-совместимое окружение.

На Windows рекомендуется использовать WSL или Git Bash. Если `make` недоступен, проект можно запускать напрямую через `docker compose`.

## Быстрый запуск через Makefile

```bash
make infra-up
make app-up
```

Сначала запускается инфраструктура, затем сервисы приложения.

Базы данных и необходимые таблицы создаются сервисами автоматически при запуске за счет автомиграций.

## Запуск без Makefile

Если `make` недоступен, те же действия можно выполнить напрямую через Docker Compose.

### 1. Запуск инфраструктуры

```bash
docker compose -f docker-compose-infra.yml up -d
```

### 2. Запуск сервисов приложения

```bash
docker compose -f docker-compose.yml up -d
```

Также можно запустить инфраструктуру и приложение одной командой:

```bash
docker compose -f docker-compose-infra.yml -f docker-compose.yml up -d
```

## Основные команды Makefile

Посмотреть список доступных команд:

```bash
make help
```

### Инфраструктура

```bash
make infra-up
```

Поднять PostgreSQL, Kafka, Zookeeper и Kafka UI.

```bash
make infra-down
```

Остановить инфраструктурные сервисы без удаления данных.

```bash
make infra-logs
```

Посмотреть логи инфраструктурных сервисов.

```bash
make infra-ps
```

Показать статус контейнеров инфраструктуры.

### Приложение

```bash
make app-up
```

Поднять сервисы приложения.

```bash
make app-down
```

Остановить сервисы приложения.

```bash
make app-logs
```

Посмотреть логи сервисов приложения.

```bash
make app-ps
```

Показать статус контейнеров приложения.

### Полный стенд

```bash
make all-up
```

Поднять инфраструктуру и сервисы приложения вместе.

```bash
make all-down
```

Остановить инфраструктуру и сервисы приложения.

```bash
make all-logs
```

Посмотреть логи всех сервисов.

```bash
make all-ps
```

Показать статус всех контейнеров.

## Сброс окружения

Пересоздать контейнеры приложения без удаления данных:

```bash
make app-reset
```

Пересоздать инфраструктурные контейнеры без удаления данных:

```bash
make infra-reset
```

Полностью сбросить стенд с удалением volumes, включая данные PostgreSQL:

```bash
make all-reset
```

После полного сброса достаточно снова запустить инфраструктуру и сервисы приложения:

```bash
make infra-up
make app-up
```

## Дополнительные команды для PostgreSQL

В `Makefile` также есть вспомогательные команды для ручной работы с PostgreSQL:

```bash
make db-shell
make db-wait
make db-create-all
```

В обычном сценарии запуска они не требуются, так как базы данных и схема создаются сервисами автоматически.