Project

General

Profile

Docker+Swarm » History » Version 1

Dmitry Vasilev, 12/01/2025 02:32 PM

1 1 Dmitry Vasilev
# Описание реализации docker + swarm на примере основного сервиса "api"
2
3
## Сборка swarm образов для микросервиса "api"
4
5
```shell
6
cd api
7
docker build -t api-app:latest -f docker/php/Dockerfile .
8
docker build -t api-nginx:latest -f docker/nginx/Dockerfile .
9
```
10
11
### Запуск сервиса на локальной системе
12
```shell
13
export DOCKER_NAME=fluir
14
15
docker stack deploy -c api-stack.local.yaml fluir_api
16
```
17
18
### Запуск сервиса на prod системе
19
20
```shell
21
export DOCKER_NAME=fluir
22
23
docker stack deploy -c api-stack.prod.yaml fluir_api
24
```
25
26
---
27
28
### Вход в контейнер
29
###
30
```shell
31
docker exec -it $(docker ps -qf "name=fluir_api_app.1") sh
32
```
33
34
Внутри контейнера можно выполнять стандартные команды
35
36
```shell
37
php artisan migrate
38
39
php artisan db:seed --class=Database\\Seeders\\RolesSeeder --force
40
php artisan db:seed --class=Database\\Seeders\\DatabaseSeeder --force
41
```
42
43
--- 
44
45
Сейчас данные действия проводить не нужно, это делается когда проект поднимается на сервере или локально первый раз.
46
47
## Список команд для Docker и Swarm для сети fluir:
48
49
**Инициализация swarm**
50
```shell
51
docker swarm init # если ещё не выполнено локально
52
docker swarm init --advertise-addr 46.101.125.135 # если ещё не выполнено на сервере
53
```
54
55
**Создаем сеть fluir**
56
57
```shell
58
docker network create --driver overlay --attachable fluir
59
```
60
61
**Проверяем наличие сети**
62
```shell
63
docker network ls
64
```
65
66
**Удалить сеть**
67
```shell
68
docker network rm fluir
69
```
70
71
**Детальная информация о сети**
72
```shell
73
docker network inspect fluir
74
```
75
76
---
77
78
**Перезапуск**
79
```shell
80
docker service update --force fluir_admin_admin
81
```
82
83
**Останов сервисов**
84
85
```shell
86
docker stack rm fluir_profiles
87
docker stack rm fluir_payments
88
docker stack rm fluir_orders
89
docker stack rm fluir_notifications
90
docker stack rm fluir_contents
91
docker stack rm fluir_chats
92
docker stack rm fluir_kyc
93
docker stack rm fluir_authentication
94
docker stack rm fluir_webview
95
docker stack rm fluir_admin
96
docker stack rm fluir_api
97
docker stack rm fluir_redmine
98
```
99
100
**Запуск сервиса api** (см. файл /home/fluir/project/start_services.sh)
101
```shell
102
cd api
103
docker stack deploy -c api-stack.prod.yaml fluir_api
104
```
105
106
### Веб интерфейс Traefik (он работает только для мониторинга)
107
108
https://traefik.fluir.us/dashboard/#/
109
login: fluir
110
pass: baf22ddb