2012-10-04 45 views
3

我在git(和linux)方面有點新鮮。 我是一個小團隊的一員,負責將我們的項目部署到我們的debian服務器。將存儲在github上的項目部署到debian網絡服務器

我們在項目中還很早,因此不需要過於複雜的部署解決方案。

無論如何。我們的項目存儲在github上,我們可以從/向前推/推。 目前,當我想要部署某些東西時,我使用git pull將它放在Windows機器上。 然後我使用這個腳本:

cd src/www 
scp -r app public <user>@<server-ip>:/home/www 

我輸入密碼並上傳文件。 我再登錄到服務器並重新啓動服務(playframework)play restart --%prod

誰能推薦一個簡單的解決方案,使服務器獲得從GitHub上的變化,並自動重新啓動服務器?我在這裏查看了一下stackoverflow,因爲我對Linux和Git缺乏經驗,所以只找到了對我來說沒有多大意義的解決方案。

回答

4

一種選擇是使用像Capistrano這樣的部署庫/框架。一旦你配置了你的部署(稱爲「配方」),Capistrano允許你從命令行很容易地部署到一個或多個目標。它還提供了一個很好的發佈結構,使您可以更好地管理在任何特定時刻部署到目標的應用程序副本。

+0

不幸的是,我沒有紅寶石的經驗。所以,如果這是一個要求,那麼可悲的是解決方案變得過於複雜。儘管感謝您的回覆。 – DarkNeuron

+0

對於其他語言,也有類似的庫/技術,例如使用[Phing](http://www.phing.info/)部署PHP。使用Capistrano需要知道的Ruby數量對於簡單部署來說非常低,並且您所要求的功能都是使用默認部署配方開箱即用的。 – mdeltito

+0

嗯,我希望有一個更簡單的解決方案,但看到這個答案是最受歡迎的答案,我會接受它。 – DarkNeuron

0

搜索「持續交貨」即可開始使用。這不是GitHub的特定問題。

一個可能的設置可能是使用持續集成服務器Jenkins。它可以配置爲定期檢查你的GitHub回購變化。如果發現有變化,它可以在應用程序或Web服務器上創建構建和/或部署工件。

當然,連續集成基礎架構的初始設置和維護需要時間,您必須判斷是否值得付出努力。然而,今天似乎有這樣的東西是有現成的。您可能也有興趣this post by GitHub devs how they deploy directly by pushing to their repository

相關問題