Project

General

Profile

Actions

Docker+Swarm » History » Revision 1

Revision 1/3 | Next »
Dmitry Vasilev, 12/01/2025 02:32 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 exec -it $(docker ps -qf "name=fluir_api_app.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