Бекенд на C# Web Api
Деплой, обновление и проверка сервисов
В первую очередь загружаем все исходные файлы на сервер, используя, например, XFTP.
Все сервисы запускаются одной командой:
docker compose -f docker-compose-dev.yml up -d --build-f: указываем файл, который использовать для запуска. При использовании команды выше приложение запустится в Development среде.
-d: detached mode — запуск в фоновом режиме, чтобы сразу вернуть управление в терминал.
--build: принудительно пересобрать образы для всех сервисов.
Если приложение необходимо обновить, то нужно скопировать на VPS новые версии файлов и заново выполнить команду выше.
Для просмотра всех контейнеров используем команду:
docker ps -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 в действии: от базовой сборки до оптимизации приложений
Автор документа: Артём Ветик