play2-openshift-quickstart, Play Framework 2.0快速开始 Openshift

分享于 

15分钟阅读

GitHub

  繁體 雙語
Play framework 2.0 quickstart for Openshift
  • 源代码名称:play2-openshift-quickstart
  • 源代码网址:http://www.github.com/opensas/play2-openshift-quickstart
  • play2-openshift-quickstart源代码文档
  • play2-openshift-quickstart源代码下载
  • Git URL:
    git://www.github.com/opensas/play2-openshift-quickstart.git
    Git Clone代码到本地:
    git clone http://www.github.com/opensas/play2-openshift-quickstart
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/opensas/play2-openshift-quickstart
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    OpenShift Express上的 Play Framework 2应用程序

    这个git存储库将帮助你使用 Play Framework 2应用程序快速运行和运行,利用do-it-yourself磁盘进行OpenShift快速运行。

    在OpenShift上运行

    创建新的Play Framework 2应用程序

    
    play new play2demo
    
    
    cd play2demo
    
    
    
    git init
    
    
    
    

    register 在 http://openshift.redhat.com/,然后创建一个 diy ( do-it-yourself ) 应用程序:

    
    rhc app create play2demo -t diy-0.1 --no-git -l yourlogin
    
    
    
    

    你将看到类似以下内容的内容:

    Creating application 'play2demo'=========================
     Namespace: yourdomain
     Gear Size: default
     Scaling: no
     Cartridge: diy-0.1
    Your application's domain name is being propagated worldwide (this might take a minute)...play2demo @ http://play2demo-yourdomain.rhcloud.com/================================= Application Info ================ Gear Size = small Git URL = ssh://your_uuid@play2demo-yourdomain.rhcloud.com/~/git/play2demo.git/ SSH URL = ssh://your_uuid@play2demo-yourdomain.rhcloud.com UUID = your_uuid Created = 6:06 PM Cartridges ========== diy-0.1RESULT:Application play2demo was created.Disclaimer: This is an experimental cartridge that provides a way to try unsupported languages,frameworks, and middleware on Openshift.

    复制并粘贴 git url将它的作为远程 repo 添加( 用你自己的替换uuid部分) !

    
    git remote add origin ssh://your_uuid@play2demo-yourdomain.rhcloud.com/~/git/play2demo.git/
    
    
    git pull -s recursive -X theirs origin master
    
    
    git add. 
    
    
    git commit -m"initial deploy"
    
    
    
    

    然后将这里存储库添加为名为quickstart的远程 repo:

    
    git remote add quickstart -m master git://github.com/opensas/play2-openshift-quickstart.git
    
    
    git pull -s recursive -X theirs quickstart master
    
    
    
    

    然后使用阶段任务准备部署

    
    play clean compile stage
    
    
    
    

    然后将更改添加到git的索引,提交并按 repo upstream:

    
    git add. 
    
    
    git commit -m"a nice message"
    
    
    git push origin
    
    
    
    

    就是这样,你现在可以看到运行于以下位置的应用程序:

    
    http://play2demo-yourdomain.rhcloud.com
    
    
    
    

    第一次完成时,需要花费相当多的时间,因为git必须上传play的依赖关系。

    要部署更改,你可以重复播放阶段的步骤,或者使用 helper 脚本'openshift_deploy'。

    使用mysql数据库

    只需问题:

    
    rhc app cartridge add -a play2scala -c mysql-5.1
    
    
    
    

    不要忘记写下凭证。

    然后从你的conf/openshift。conf中取消注释以下行,如下所示:

    
    # openshift mysql database
    
    
    db.default.driver=com.mysql.jdbc.Driver
    
    
    db.default.url="jdbc:mysql://"${OPENSHIFT_DB_HOST}":"${OPENSHIFT_DB_PORT}/${OPENSHIFT_APP_NAME}
    
    
    db.default.user=${OPENSHIFT_DB_USERNAME}
    
    
    db.default.password=${OPENSHIFT_DB_PASSWORD}
    
    
    
    

    你还必须将mysql驱动程序包括为依赖项。 将此行添加到项目/构建。scala file:

    
    val appDependencies = Seq( 
    
    
    "mysql" %"mysql-connector-java" %"5.1.18" 
    
    
    ) 
    
    
    
    

    你可以通过嵌入 phpmyadmin-3.4 来管理新的MySQL数据库。

    
    rhc app cartridge add -a play2scala -c phpmyadmin-3.4
    
    
    
    

    另外,在数据库上创建具有有限特权的用户也是一个好主意。

    更新你的应用程序

    要将更改部署到openshift只需运行阶段任务,将你的更改添加到索引,提交和推送:

     play clean compile stage
     git add . -A
     git commit -m "a nice message" git push origin

    如果你想做一个快速测试,你可以跳过"清理编译"的内容,只运行"播放阶段 stage"

    好吧我知道你很懒就像我一样。 所以我添加了一个小的脚本来帮助你

     openshift_deploy "a nice message"

    你可以让消息保持空,并且它会添加类似"已经部署于 Thu 29 04: 07: 艺术 2012"的东西,你还可以传递"-q"参数跳过"清理编译"选项。

    一步一步: 将计算机数据库示例应用程序部署到 openshift

    你可以向已经存在的播放应用程序添加openshift支持。

    让我们使用计算机数据库示例应用程序。

    cd PLAY_INSTALL_FOLDER/samples/scala/computer-database
     git init
     rhc app create -a computerdb -t diy-0.1 --nogit

    我们添加"--nogit"参数来告诉openshift创建远程 repo,但不在本地拉它。 你将看到如下所示的内容:

     Confirming application 'computerdb' is available: Success! computerdb published: http://computerdb-yournamespace.rhcloud.com/
     git url: ssh://uuid@computerdb-yournamespace.rhcloud.com/~/git/computerdb.git/

    复制并粘贴 git url将它的作为远程 repo 添加( 用你自己的替换uuid部分) !

    
    git remote add origin ssh://uuid@computerdb-yourdomain.rhcloud.com/~/git/computerdb.git/
    
    
    git pull -s recursive -X theirs origin master
    
    
    git add. 
    
    
    git commit -m"initial deploy"
    
    
    
    

    就是这样,你刚刚克隆了 openshift repo,现在我们将添加快速启动 repo:

    
    git remote add quickstart -m master git://github.com/opensas/play2-openshift-quickstart.git
    
    
    git pull -s recursive -X theirs quickstart master
    
    
    
    

    然后运行阶段任务,添加你对git的索引,提交并按 repo upstream ( 你还可以运行 openshift_deploy 脚本):

    
    play clean compile stage
    
    
    git add. 
    
    
    git commit -m"deploying computerdb application"
    
    
    git push origin
    
    
    
    

    要查看推送是否成功,请打开其他控制台,并使用以下命令检查日志:

    
    rhc app tail -a computerdb
    
    
    
    

    哎呀,看来有问题。

    
    [warn] play - Run with -DapplyEvolutions.default=true if you want to run them automatically (be careful)
    
    
    Oops, cannot start the server.
    
    
    PlayException: Database 'default' needs evolution! [An SQL script need to be run on your database.]
    
    
    
    

    在开发模式上,play会要求你运行挂起的演进到数据库,但是在生产模式下,你必须将它的指定为 命令行。 让我们配置play以自动应用 evolution。 像这样编辑文件 conf/openshift。conf:

    
    # openshift action_hooks scripts configuration
    
    
    # ~~~~~
    
    
    openshift.play.params="-DapplyEvolutions.default=true"
    
    
    
    

    现在使用'/openshift_deploy -q'再次部署你的应用程序'

    就是这样,你现在可以看到computerdb演示应用程序运行:

    
    http://computerdb-yournamespace.rhcloud.com
    
    
    
    

    但还有一个你可以做的。 现在,应用程序内存数据库中使用与play绑定的h2. 如果你的应用程序检测到没有活动,Openshift可能会决定将你的应用程序换出内存。 所以你最好把这些信息保存在。 很简单只要编辑计数/openshift。conf文件即可告诉play在openshift上运行时使用文件数据库,如下所示:

    
    db.default.driver=org.h2.Driver
    
    
    db.default.url="jdbc:h2:"${OPENSHIFT_DATA_DIR}db/computerdb
    
    
    
    

    如果你觉得勇敢,你可以把它移植到 mysql。 将mysql墨盒添加到openshift应用程序中:

    
    rhc app cartridge add -a computerdb -c mysql-5.1
    
    
    
    

    有几个不同的地方你必须处理。 请查看这里快速入门以查看需要更改的内容: https://github.com/opensas/openshift-play2-computerdb

    我给你一些提示: 这个示例应用使用的是 computer.insert 序列而不是 mysql auto_increment字段;你还需要修改方法,而不是通过id字段;为了让参考完整性工作,你必须使用'设置 FOREIGN_KEY_CHECKS = 0 | 1 ;'引擎替换'设置 REFERENTIAL_INTEGRITY false | true'命令。

    然后编辑你的conf/openshift。conf文件,如下所示

    
    # openshift mysql database
    
    
    db.default.driver=com.mysql.jdbc.Driver
    
    
    db.default.url="jdbc:mysql://"${OPENSHIFT_DB_HOST}":"${OPENSHIFT_DB_PORT}/${OPENSHIFT_APP_NAME}
    
    
    db.default.user=${OPENSHIFT_DB_USERNAME}
    
    
    db.default.password=${OPENSHIFT_DB_PASSWORD}
    
    
    
    

    你还必须将mysql驱动程序包括为依赖项。 将此行添加到项目/构建。scala file:

    
    val appDependencies = Seq( 
    
    
    "mysql" %"mysql-connector-java" %"5.1.18" 
    
    
    ) 
    
    
    
    

    你可以通过嵌入 phpmyadmin-3.4 来管理新的MySQL数据库。

    
    rhc app cartridge add -a computerdb -c phpmyadmin-3.4
    
    
    
    

    再次部署,你的computerdb应用程序将在openshift上运行,并在处运行:

    
    http://computerdb-yournamespace.rhcloud.com
    
    
    
    

    配置

    当使用openshift运行时,conf/openshift。conf定义的配置将被 conf/overriden覆盖,这样你就可以在openshift上定制播放应用程序的方式。

    你还可以指定附加参数,以传递给 play play key openshift.play.params key key key,如下所示:

    
    # play framework command configuration
    
    
    # ~~~~~
    
    
    #openshift.play.params="-Xmx512M"
    
    
    
    

    不要忘了用引号括起来每个参数。

    问题

    要了解openshift中发生了什么,请发布

    
    rhc app tail -a play2demo
    
    
    
    

    如果你想进一步研究,你可以

    
    rhc app show -a play2demo
    
    
    
    Application Info
    
    
    ================
    
    
    play
    
    
     Framework: diy-0.1
    
    
     Creation: 2012-03-18T12:39:18-04:00
    
    
     UUID: youruuid
    
    
     Git URL: ssh://youruuid@play-yournamespace.rhcloud.com/~/git/raw.git/
    
    
     Public URL: http://play-yournamespace.rhcloud.com
    
    
    
    

    然后,你可以像这样使用ssh进行连接:

    
    ssh youruuid@play-yournamespace.rhcloud.com
    
    
    
    

    Having 查看 hood

    项目利用openshift墨盒的do-it-yourself来本机运行 Play Framework 2应用程序。

    每次将更改推送到openshift时,将发生以下操作:

    • Openshift将运行脚本以停止应用程序,以防运行时。

    • 然后,它将执行的. openshift/action_hooks/start 来启动你的应用程序。 你可以使用 openshift.play. 参数指定附加参数。

    ${OPENSHIFT_REPO_DIR}target/start $PLAY_PARAMS 
     -Dhttp.port=${OPENSHIFT_INTERNAL_PORT} -Dhttp.address=${OPENSHIFT_INTERNAL_IP} -Dconfig.resource=openshift.conf

    Play将在生产模式下运行你的应用程序。 服务器将在 ${OPENSHIFT_INTERNAL_IP}. 处监听 ${OPENSHIFT_INTERNAL_PORT}

    • .openshift/action_hooks/stop 只是尝试终止RUNNING_PID进程,然后检查没有"Java"进程运行。 如果它在那里,它会尝试五次以良好的方式杀死它,然后再试五次,用-SIGKILL杀死它。

    确认

    quickstart quickstart quickstart answered answered answered answered answered answered answered answered answered我的问题on他回答了我的问题,并且他也分享了他的 quickstart。 ( 我知道,开源摇滚) !

    这也是帮助为构建快速入门项目shipley的。

    Play Framework 本地支持openshift是一个期待很久且非常流行的特性( 你还可以为它投票,这里是)。 所以红帽工程师出现了这个简单而强大的解决方案,基本上让我们可以在linux框架上运行。 赞他们 !

    许可证

    这个项目是在 Apache许可证下发布的。


      framework  play  Openshift