sergey_1990
@sergey_1990
1

Как посоветуете выполнять развёртывание web сервера Rust на VDS?

Добрый вечер, добрался до деплоя веб приложения на Расте(у меня на salvo.rs но смысл думаю одинаков для всех) на VDS, гугление результатов не принесло! Чтобы проверить работоспособность конечно я воспользовался scp и закинул бинарник из target/release/ и папку со статикой и запустил через systemd все это дело! НО это неудобно и не правильно, тем более хотелось бы получить более менее рабочую схему деплоя, сразу скажу я в раст пришёл после разработки на скриптовых языках, там весь исходный код летит на ВДС ну или контейнер, здесь же необходимо обеспечить доставку только исполняемых файлов, причём интересно и с Докером и без него, с Докером пока единственная мысль это собирать образ локально и его docker push, просьба без критики, благодарен любым советам
  • Вопрос задан
  • 187 просмотров
Решения вопроса 1
Negezor
@Negezor
Senior Shaurma Developer
Абсолютно так же как и остальными Node.JS, Go и другими языками в современном мире пакуется в контейнер и деплоится в прод. Есть несколько готовых вариантов, но все они будут придерживаться docker и docker compose:

- ручное: Клонируем репозиторий, билдим на этом сервере docker compose build && docker compose up -d.
- ручное: Локально билдим докер образ и пушим в регистр докера, на самой машине так же docker compose pull && docker compose up -d но уже только с получением образа из регистра докера в docker compose.
- полу-автоматически: Пишем .sh скрипт который на git хуки или руками будет делать действия что и в одном из предыдущих вариантов, но без Workflow.
- автоматически: Используем GitLab/Github Workflow или любой другой, на каждый релиз/коммит/PR запускаем Workflow с билдом, дальше пушит полученный контейнер в регистр, затем последним этапом будет подключение по SSH к серверу и применения условного
cd /path/to && docker compose pull && docker compose up -d


Я привёл самые простые варианты. Ещё есть варианты с k8s, ansible и другими вещами, но это не ваш случай судя по всему.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
vabka
@vabka Куратор тега Rust
НО это неудобно и не правильно

Почему?
Ну вообще по хорошему да, тут бы ещё какой-нибудь nginx добавить, чтобы он проксировал запрос.
А так вроде всё ок, если не упарываться контейнерами.

с Докером пока единственная мысль это собирать образ локально и его docker push

Если не хочется усложнять жизнь при помощи добавления какого-то билд-сервера, то это более чем рабочий вариант

сразу скажу я в раст пришёл после разработки на скриптовых языках, там весь исходный код летит на ВДС

Как ты правильно сказал - отправлять тут нужно только исполняемые файлы. А как же ты тогда раньше скриптовые языки запускал? Без systemd?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы