Пример клиент-серверного приложения с деплоем на удалённый сервер
В данном шаблоне представленно простое веб-приложение для работы с базой контактов. Шаблон нацелен на оптимизацию процессов разработки и интеграции в рамках простых проектов. Далее будет дорабатываться с развитием моего представления о CI/CD.
Предполагаемый процесс разработки
Клиентская часть разработана в Bootstrap Studio с использование VueJS. Таким образом, использован классический стек HTML, CSS и JS. Для серверной части был выбран стек MEVN, что не является целевым стеком моих проектов. Однако, это как пример легковесного и простого сервера. Сборка контейнеров состоит из контейнера MongoDB и контейнера с самим сервером.
Сборка и деплой
Сервер можно тестировать локально, но я рекомендую проводить все тестирования на Docker (только локальном). Если говорить про деплой, то вам потребуется удалённый сервер с установленным Docker compose. Далее потребуется выполнить следующие шаги:
- На сервере настроить работу ключей SSH. Инструкций достаточно в Интернете, но главное, чтобы у вас было проверена работа SSH без пароля на локальном компьютере.
- Также нужно добавить удалённый сервер в список Docker context командой
docker context create <context_name> --docker "host=ssh://<docker_user>@<server_address>"
- Установите нужные данные сервера (IP-адресс и порт) в файле переменных docker.env
- Теперь одной командой вы можете запустить деплой на удалённый сервер
docker --context=<context_name> compose --env-file=docker.env up --build -d