Бекенд на C# Web Api

To Kaiten

Деплой, обновление и проверка сервисов

Загрузка файлов на сервер

В первую очередь загружаем все исходные файлы на сервер, используя, например, XFTP.

Не обязательно загружать файлы сборок, которые находятся в директориях bin и obj, а также файлы .vs. Они не нужны для развертывания приложения, но могут занимать лишнее место на VPS.

Запуск и обновление приложения

Все сервисы запускаются одной командой:

docker compose -f docker-compose-dev.yml up -d --build
  • -f: указываем файл, который использовать для запуска. При использовании команды выше приложение запустится в Development среде.

  • -d: detached mode — запуск в фоновом режиме, чтобы сразу вернуть управление в терминал.

  • --build: принудительно пересобрать образы для всех сервисов.

Если приложение необходимо обновить, то нужно скопировать на VPS новые версии файлов и заново выполнить команду выше.

Просмотр всех контейнеров

Для просмотра всех контейнеров используем команду:

docker ps -a

Флаг -a позволяет отобразить даже остановленные контейнеры.

Если не возникло никаких ошибок, то все контейнеры должны быть запущены и должны работать со статусом UP.

Остановка приложения

Для остановки используйте следующую команду:

docker compose -f docker-compose-dev.yml down

Эта команда остановит и удалит все сервисы, которые были запущены с помощью docker-compose-dev.yml файла.

Одновременный запуск в разных средах

Не получится просто так запустить сразу и Dev и Prod среду. Однако, можно изменить настройки compose файлов так, чтобы можно было запускать одновременно приложение на одной VPS в разных средах.

  • Во-первых, необходимо изменить порт базы данных, чтобы он не конфликтовал. Например, первое приложение работает с БД на 5432 порту, а второе на 5433 порту.

  • Во-вторых, обязательно нужно настроить разные volume для БД. Например, в первом compose файле настройка volume одна: ./docker/bd:/var/lib/postgresql/data1, а во втором другая: ./docker/bd:/var/lib/postgresql/data2. Таким образом, для каждого из приложений будет своя директория, в которой будут храниться данные БД.


Ссылки

Хабр — Изучаем Docker, часть 1: основы

Хабр — Основы контейнеризации (обзор Docker и Podman)

YourTodo — Docker-compose в действии: от базовой сборки до оптимизации приложений


Автор документа: Артём Ветик