Actions
Docker+Swarm » History » Revision 2
« Previous |
Revision 2/3
(diff)
| Next »
Dmitry Vasilev, 12/01/2025 02:35 PM
Описание реализации docker + swarm на примере основного сервиса "api"¶
Сборка swarm образов для микросервиса "api"¶
cd api
docker build -t api-app:latest -f docker/php/Dockerfile .
docker build -t api-nginx:latest -f docker/nginx/Dockerfile .
Запуск сервиса на локальной системе¶
export DOCKER_NAME=fluir
docker stack deploy -c api-stack.local.yaml fluir_api
Запуск сервиса на prod системе¶
export DOCKER_NAME=fluir
docker stack deploy -c api-stack.prod.yaml fluir_api
Вход в контейнер¶
Смотрим какие сервисы запущены и видим, что-типа
docker ps
f9bdf5c420a9 redis:alpine "docker-entrypoint.s…" 4 days ago Up 4 days 6379/tcp fluir_api_redis.1.g4dgki53bzg9706cr9ovwizze
6ca234e7aa09 api-app:8.3-swoole "docker-entrypoint.s…" 4 days ago Up 4 days 9000/tcp fluir_api_reverb.1.olz5ieevcx0l77w8vrdugpnkp
5afffe0a518e api-nginx:latest "/docker-entrypoint.…" 4 days ago Up 4 days 80/tcp fluir_api_nginx.1.4jkamx5g1nmwzuj4ja2sv84o4
7f65a388c14a api-app:8.3-swoole "docker-entrypoint.sh" 4 days ago Up 4 days 9000/tcp fluir_api_app.1.zfpkflrfhngxfdk40s007kkuo
7443eac605df traefik:v2.10 "/entrypoint.sh --pr…" 4 days ago Up 4 days 80/tcp fluir_api_traefik.1.r4seahn85hvgy9ybdpx613769
5e0d8f12f1aa postgres:16-alpine "docker-entrypoint.s…" 4 days ago Up 4 days 5432/tcp fluir_api_postgres.1.calxjb5tqodw3kounkssdj8mm
docker exec -it $(docker ps -qf "name=fluir_api_app.1") sh
Например, чтобы зайти в сервис payments, нужно выполнить
docker exec -it $(docker ps -qf "name=fluir_api_payments.1") sh
Внутри контейнера можно выполнять стандартные команды
php artisan migrate
php artisan db:seed --class=Database\\Seeders\\RolesSeeder --force
php artisan db:seed --class=Database\\Seeders\\DatabaseSeeder --force
Сейчас данные действия проводить не нужно, это делается когда проект поднимается на сервере или локально первый раз.
Список команд для Docker и Swarm для сети fluir:¶
Инициализация swarm
docker swarm init # если ещё не выполнено локально
docker swarm init --advertise-addr 46.101.125.135 # если ещё не выполнено на сервере
Создаем сеть fluir
docker network create --driver overlay --attachable fluir
Проверяем наличие сети
docker network ls
Удалить сеть
docker network rm fluir
Детальная информация о сети
docker network inspect fluir
Перезапуск
docker service update --force fluir_admin_admin
Останов сервисов
docker stack rm fluir_profiles
docker stack rm fluir_payments
docker stack rm fluir_orders
docker stack rm fluir_notifications
docker stack rm fluir_contents
docker stack rm fluir_chats
docker stack rm fluir_kyc
docker stack rm fluir_authentication
docker stack rm fluir_webview
docker stack rm fluir_admin
docker stack rm fluir_api
docker stack rm fluir_redmine
Запуск сервиса api (см. файл /home/fluir/project/start_services.sh)
cd api
docker stack deploy -c api-stack.prod.yaml fluir_api
Веб интерфейс Traefik (он работает только для мониторинга)¶
https://traefik.fluir.us/dashboard/#/
login: fluir
pass: baf22ddb
Updated by Dmitry Vasilev 2 months ago · 3 revisions