2013-02-28 98 views
11

我一直在試圖找到在Google AppEngine上部署Dropwizard應用的方法,但到目前爲止我還沒有發現任何東西。在Google AppEngine上部署Dropwizard

通過這個question(和answer)來判斷我認爲這可能是不可能的。 我想確定一下,如果沒有工作,我想學習如何。

有一個叫做warwizard的dropwizard叉子,它顯然可以讓你從你的dropwizard代碼創建war文件,但是它已經超過6個月沒有被觸及,這很可能使得使用dropwizard文檔變得很困難。

+0

我認爲這是可能的,前提是隻有那些GAE友好班級都參與其中。 – xybrek 2013-03-15 09:31:45

+0

雖然我仍然試圖構建warwizard,並且需要驗證這一點,但是我再次看不到任何不會使這成爲可能的事情,查看代碼大部分更改將在覈心上的「碼頭」上,以及還應該修改GAE數據存儲庫中的db – xybrek 2013-03-15 09:38:09

回答

7

在谷歌計算引擎但是,您可以運行Dropwizard。基本上只有Google提供的Linux虛擬機,如果需要的話可以訪問它們的API。

我manged讓我Dropwizard實例做對GCE以下工作:

安裝Java

sudo apt-get install java7-runtime-headless 

打開防火牆端口:

gcutil addfirewall rest --description="http" --allowed="tcp:8080 
gcutil addfirewall admin --description="admin" --allowed="tcp:8081" 

將文件複製到GCE

gcutil --project={project-id} push {instance-name} {local-file} {remote-target-path} 

運行你的應用程序

java -jar your-app.jar server your-config.yml 

編輯:也有叫wiztowar https://github.com/twilio/wiztowar另一種選擇,它支持DW 0.6.2只。

0

我一直在試圖解決過去兩個月的這個問題。這裏是我的發現:

1- 是的,您可以將Dropwizard部署爲WAR文件。你需要使用一些黑客Wizard in a boxWizToWar

2- 沒有!您不能在AppEngine標準環境中部署該WAR文件。

爲什麼? 主要問題是AppEngine正在使用servlet-api v2.5(這已經超過10年了!),並且沒有計劃升級到servlet-api v3或更高版本。另一方面,Dropwizard需要servlet-api v3或更高版本。

但等等!還有另一種選擇

您可以在App Engine Flexible Environment

應用程序引擎的Flex部署Dropwizard仍處於測試階段,但我聽說如果你現在想使用它,將可用於在2017年第一季度公共使用,你必須要求爲你啓用它。

如何部署App Engine Flex?

- >我已經把所有的步驟做,在一個博客張貼在這裏: Deploying Dropwizard on App Engine Flex

+0

您不需要今天使用flex env,它對公衆開放(作爲beta版本,爲true)。 AFAIK只需要填寫表單,如果您想將其用於自定義域(從https://cloud.google.com/appengine/docs/flexible/python/upgrading) – 2017-01-12 19:57:42

+0

太棒了!感謝您的更新:+1: – 2017-01-12 20:00:56

相關問題