Как вы указываете развернутое приложение Meteor на новую версию?

Я конкретно говорю о пакете приложений, работающем на моем собственном сервере.

У меня есть приложение Meteor, работающее с использованием навсегда в ~/bundle, а мой репозиторий git находится в ~/project. Я храню tar-архивы различных выпусков в ~/release.

~/release
  |-0.1.0.tar.gz
  |-0.1.1.tar.gz
  |-0.2.0.tar.gz

После внесения изменений из git и перехода на последнюю версию я хочу связать свою новую версию и воспользоваться преимуществами перезагрузки горячего кода и (надеюсь?) поддерживать клиентские соединения. Как лучше всего это сделать?

Примечание. Я также использую nginx; так это как-то повлияет на процесс? т. е. убьет ли он открытые клиентские соединения? нужно ли перезагружать nginx после обновления до более новой версии приложения?

Спасибо.


person alnafie    schedule 30.06.2014    source источник
comment
Вместо создания собственного решения используйте github.com/arunoda/meteor-up.   -  person Andrew Mao    schedule 01.07.2014


Ответы (1)


Вы можете использовать такой скрипт.

Убедитесь, что ваш сервер указан в файле конфигурации ssh, например

Host yourserver
User youruser
Port 22
Hostname yourapp.com
IdentityFile ~/.ssh/yourkeyfile.pem
TCPKeepAlive yes
IdentitiesOnly yes

Тогда у вас может быть такой скрипт bash:

#!/bin/bash
cd ~/Desktop/yourappdirectory
rm -f ~/Desktop/yourapp.tar.gz
meteor bundle ~/Desktop/yourapp.tar.gz
scp ~/Desktop/yourapp.tar.gz yourserver:~/yourapp.tar.gz
ssh yourserver  <<'ENDSSH'
cd ~/
tar -xzf yourapp.tar.gz
sudo rm -rf yourapp
mv bundle yourapp
cd yourapp/programs/server/node_modules
rm -rf fibers
rm -rf bcrypt
sudo npm install [email protected]
sudo npm install bcrypt
cd ~/yourapp/programs/server/npm/mongo-livedata/main
rm -r mongodb
sudo npm install [email protected]
cd ~/
sudo forever stop ~/yourapp/main.js
sudo MONGO_URL=mongodb://user:pass@ip:27017/meteor PORT=3000 ROOT_URL=https://yoursite.com forever start ~/yourapp/main.js
ENDSSH

Затем просто запустите bash, и он загрузит и развернет ваше приложение для вас. Просто примечание, что я не мог поместить релизную версию, поэтому материал просто загружается в ~/yourapp.tar.gz, а затем разделяется на ~/yourapp.

Затем приложение метеора будет перезагружено горячим кодом на любых клиентах, если они находятся на сайте.

person Tarang    schedule 01.07.2014