“新颖”的Web开发库Sinatra可以让您从头开始快速构建Web应用程序。...与日益流行的Ruby on Rails框架不同,在Sinatra上创建的应用程序可以由单个文件组成,这块完全取决于Sinatra gem。...Sinatra。...用于Sinatra测试 注意:下面是一个简短的教程,介绍如何为演示目的创建一个基于Sinatra的应用程序,该应用程序旨在用作我们的部署文章的示例。...要获得有关使用Sinatra的更深入的知识,请查看官方的Sinatra:入门文档。 应用目录 让我们通过创建一个示例Hello world!应用程序的目录来开始我们的Sinatra之旅。
那么当提到部署一个Sinatra应用程序呢?让我们来看看… 如果你读过我的文章:用Sinatra构建一个数据驱动的应用程序,你可能已经准备好尝试部署了。...由于Sinatra是一个Ruby应用程序,所以部署起来并不像一个PHP应用程序那么简单,但它仍然不难。 Sinatra入门... 如果你刚刚开始入门Sinatra,你可能会觉得这个帖子有用。...如果你已学过来自PHP的Sinatra,我写了一篇 Rubysource 的文章,向你展示如何用Sinatra创建一个博客应用程序。 您需要在Heroku有一个(免费)帐户。...Sinatra是一个Rack应用程序,但Heroku与这些没有任何障碍。我们只需要一个文件来解释我们如何让我们的应用程序运行: 在config.ru你需要以下内容: require '..../main' run Sinatra::Application 你可以通过源代码管理系统Git部署到Heroku 。
但是该怎么部署一个Sinatra应用程序呢?让我们来看看… 如果你读过我的一篇用Sinatra构建一个数据驱动的应用程序的文章,你可能已经准备好尝试部署了。...由于Sinatra是一个Ruby应用程序,所以部署起来并不像要部署一个PHP应用程序那么简单,但它仍然并不是太困难。 Sinatra入门......如果你刚刚开始接触Sinatra,你可能会觉得这个帖子有用。...如果你准备使用Sinatra构建一个PHP应用程序的话,我写了一篇 Rubysource 的文章,向你展示如何用Sinatra创建一个博客应用程序。 您需要在Heroku有一个(免费)帐户。.../main' run Sinatra::Application 您可以通过源代码管理系统Git部署到Heroku 。
那么如何部署一个Sinatra应用程序呢?请往下看。 如果你之前参照了我的文章用Sinatra构建一个由数据驱动的应用程序,那么你可能已经迫不及待地想要进行部署了。...由于Sinatra是一个Ruby应用,所以部署起来并不像一个PHP应用程序那么简单,但它也不算难。 Sinatra入门 如果你刚刚开始接触Sinatra,这个帖子或许会帮到你。...如果你具有PHP的基础或一定的开发能力,并想尝试Sinatra,这里有一篇Rubysource的 文章,向你展示如何用Sinatra创建一个博客应用程序。...Sinatra-index.PNG 需要注意的是,Sinatra是一个Rack应用程序,而Heroku与此并无关系。.../main' run Sinatra::Application 通过Git(一种源代码管理系统)可以将应用程序部署到Heroku 。
新建一个目录和一个 Dockerfile $ mkdir sinatra $ cd sinatra $ touch Dockerfile Dockerfile 中每一条指令都创建镜像的一层,例如: #...$ sudo docker build -t="ouruser/sinatra:v2" ....$ sudo docker tag 5db5f8471261 ouruser/sinatra:devel $ sudo docker images ouruser/sinatra REPOSITORY...ouruser/sinatra devel 5db5f8471261 11 hours ago 446.7 MB ouruser/sinatra v2 5db5f8471261 11...$ sudo docker push ouruser/sinatra The push refers to a repository [ouruser/sinatra] (len: 1) Sending
构建一个web应用程序 创建一个webAPP目录 mkdir sinatra && cd sinatra vim Dockerfile FROM ubuntu LABEL maintainer="huangzelin...docker build -t huangzelin/sinatra ....启动 sudo docker run -d -p 4567 --name webapp -v $PWD/webapp:/opt/webapp huangzelin/sinatra 看一下他的映射端口:...root@DESKTOP-3JK8RKR:/data/docker_test/sinatra# docker ps |grep webapp c4da61b1d6fa huangzelin...在dockerbook-code/code/5/sinatra/webapp_redis下。 然后 docker build -t huangzelin/redis_app .
2.3、创建镜像 命令:docker build -t tiger/sinatra:v2 ....docker build 是docker创建镜像的命令 -t 是标识新建的镜像属于 ouruser的 sinatra是仓库的名称 :v2...是用来指明 我们的使用的Dockerfile文件当前目录的 详细执行过程: [root@master sinatra]# docker build -t tiger.../sinatra:v2 ....docker run -t -i tiger/sinatra:v2 /bin/bash Dockerfile分为四个部分: 基础镜像信息、维护者信息、镜像操作指令和容器启动指令。
知识堂 详细解读Ruby输出文件信息实现方式 Ruby元编程构造简单优雅解决方案 Rails尽人皆知,有人甚至可能听说过Merb和Camping,但是否有人知道Nitro、Ramaze、Sinatra...Sinatra是一个刚开发了一个月的DSL web开发框架。Ron Evans对其进行了简要评价。它与Rails的主要差别在于它不是基于Model-View-Controller模式的框架。...Sinatra是基于最小化的DSL语法开发的,它的小型基础核心中不包括诸如ActiveRecord这样的模块。通过使用get/post action定义,Sinatra具备动态路由定义功能。...Ron指出,Sinatra不是为Robust web应用开发的,而是为了用来搭建小型的原型,其中的混合业务逻辑和展示层并不是问题。 那这样做有什么好处呢?
现在,我利用它运行一个Puma Web服务器,上面跑着一个简单的Sinatra应用。 在进一步介绍之前,你也许会想:这有什么实际的用途吗?...安装Ruby、Bundler、Sinatra和Puma Sinatra是一个轻量级的Web应用程序框架,而Puma是Web服务器。 Ruby就是Ruby!...当然,Sinatra和Puma只是建议,你甚至可以在手机上运行完整的Rails应用程序。只要别使用默认的Rails开发服务器WEBRick就行,它只有单进程、单线程,因此不适合生产环境。...在安卓上运行: pkg install ruby gem install sinatra puma 安装nginx nginx是Web服务器、反向代理和负载均衡器。...在我的配置中,我将其改成了 /data/data/com/termux/files/home/android-sinatra。
117,757 21.0% 0 Mcr Rby Rac Pum Lin Rea 71 sinatra-sequel-postgres 117,258 20.9% 0 Mcr Rby Rac Pum...Lin Rea 72 sinatra 116,280 20.7% 0 Mcr Rby Rac Pum Lin Rea 73 echo 114,610 20.4% 0 Mcr Go Non Non...64,468 11.5% 0 Mcr Rby Rac Pas Lin Rea 100 sinatra-sequel-postgres-passenger-mri 64,462 11.5% 0 Mcr...Rby Rac Pas Lin Rea 101 sinatra-passenger-mri 63,897 11.4% 0 Mcr Rby Rac Pas Lin Rea 102 sinatra-postgres-passenger-mri...Lin Rea 123 sinatra-sequel-postgres-unicorn-mri 30,686 5.5% 0 Mcr Rby Rac Uni Lin Rea 124 sinatra-sequel-unicorn-mri
Sinatra Synchrony Sinatra::Synchrony是Sinatra的一个小扩展,它动态提升了Sinatra网络应用的并发性。...这意味着我们可以像写一个正常的Sinatra网络应用那样进行开发。 Sinatra::Synchrony允许我们做异步程序,除了那些在Fibers中封装了回调操作的。
oc project paymentapp-dev oc new-app ruby~https://github.com/openshift/sinatra-example --name=sinatra...我们给镜像打一个test的标签: oc tag sinatra:latest sinatra:test ? ?...oc project paymentapp-test oc new-app paymentapp-dev/sinatra:test -n paymentapp-test ? ?...接下来,我们把镜像打上prod的tag,然后在生产环境部署: oc tag sinatra:test sinatra:prod -n paymentapp-dev ?...oc project paymentapp-prod oc new-app paymentapp-dev/sinatra:prod -n paymentapp-prod ? oc get pod ?
举个例子,下面代码中的DockerFile可以用来定义一个微服务的Docker镜像,它使用了Ruby和Sinatra框架: FROM ubuntu:14.04 MAINTAINER John Doe <...--disabled-password --gecos '' sinatra RUN adduser sinatra sudo RUN echo '%sudo ALL=(ALL) NOPASSWD:...ALL' >> /etc/sudoers USER sinatra RUN curl -sSL https://get.rvm.io | bash -s stable RUN /bin/bash -l...-c "source /home/sinatra/.rvm/scripts/rvm" RUN /bin/bash -l -c "rvm install 2.1.2" RUN /bin/bash -l -...c "gem install sinatra" RUN /bin/bash -l -c "gem install thin" 使用这个镜像建立的容器可以便捷地被部署到一个主机上,这个主机同时还运行了另一个使用
打开一个 Sinatra 工程, 将内容copy到 public/ 目录里。重新设置端口转发,使用默认的 9393。确实可以访问了,证实是 80 端口被屏蔽。...但 Sinatra 默认不支持文件列表。 后来Google 一下,找到一个 SimpleHTTPServer, 它是一个 Python 模块,在我的系统上是自带的。
-p8000 4、adsf (Ruby) gem install adsf # install dependency adsf -p 8000 5、Sinatra (Ruby) gem install...sinatra # install dependency ruby -rsinatra -e'set :public_folder, "
例如,下方的 DockerFile 可以定义一个使用 Ruby 和 Sinatra 框架的微服务 Docker 镜像: FROM ubuntu:14.04 MAINTAINER John Doe <jdoe...——disabled-password ——gecos '' sinatra RUN adduser sinatra sudo RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL...' >> /etc/sudoers USER sinatra RUN curl -sSL https://get.rvm.io | bash -s stable RUN /bin/bash -l -c..."source /home/sinatra/.rvm/scripts/rvm" RUN /bin/bash -l -c "rvm install 2.1.2" RUN /bin/bash -l -c "...gem install sinatra" RUN /bin/bash -l -c "gem install thin" 使用 Java 和 DropWizard 框架,从此镜像创建的容器可以轻松放置在运行另一个从
rack-protection-2.1.0.gem Fetching ruby2_keywords-0.0.5.gem Fetching mustermann-1.1.1.gem Fetching sinatra...-2.1.0.gem Fetching multi_json-1.15.0.gem Fetching sinatra-contrib-2.1.0.gem Fetching rb-inotify-0.10.1...nokogiri-1.12.5-java.gem Fetching octicons-12.1.0.gem Fetching mustache-0.99.8.gem Fetching mustache-sinatra
moco,基于Java wiremock,基于Java sinatra,基于Ruby 看到sinatra被列在这里,可能熟悉Ruby的人会反对:它可是一个后端全功能的的程序库啊。...之所以列它在这里,是因为sinatra提供了一套简洁优美的DSL,这个DSL非常契合Web语言,我找不到更漂亮的方式来使得这个mock server更加易读,所以就采用了它。 ...一个简单的做法是使用Sinatra来做一次url的转换: get '/api/feeds' do content_type 'application/json' File.open('mocks...build-sample-application-by-using-underscore-and-jquery/", "title": "使用underscore.js构建前端应用", "publicDate": "2015年1月20日" } ] 然后在sinatra...status); }); } 这里又多出来一个请求,不过使用Sinatra我们还是可以很容易的支持它: post '/api/feeds/:id' do end 可以看到,在没有后端的情况下
1、moco,基于Java 2、wiremock,基于Java 3、sinatra,基于Ruby 看到sinatra被列在这里,可能熟悉Ruby的人会反对:它可是一个后端全功能的的程序库啊。...之所以列它在这里,是因为sinatra提供了一套简洁优美的DSL,这个DSL非常契合Web语言,我找不到更漂亮的方式来使得这个mock server更加易读,所以就采用了它。...一个简单的做法是使用Sinatra来做一次url的转换: get '/api/feeds' do content_type 'application/json' File.open('mocks/feeds.json...build-sample-application-by-using-underscore-and-jquery/", "title": "使用underscore.js构建前端应用", "publicDate": "2015年1月20日" } ] 然后在sinatra...status); }); } 这里又多出来一个请求,不过使用Sinatra我们还是可以很容易的支持它: post '/api/feeds/:id' do end 可以看到,在没有后端的情况下,我们一切都进展顺利
作者坦言Spark框架的灵感源于Ruby的Sinatra微框架,正好赶上了Java8迟来的闭包,于是就诞生了看起来非常轻量级的Spark。...", (req, res) -> "Hello World"); } } 运行一下上面的代码,你就可以在浏览器里访问http://localhost:4567/hello这个了 我们来比较一下Sinatra...框架的Hello World require 'sinatra' get '/' do 'Hello world!'
领取专属 10元无门槛券
手把手带您无忧上云