与日益流行的Ruby on Rails框架不同,在Sinatra上创建的应用程序可以由单个文件组成,这块完全取决于Sinatra gem。...安装Ruby和Sinatra 更新操作系统 首先,我们需要将默认组件升级到最新版本,以确保我们拥有最新的所有内容。...此软件包包含从源代码安装某些内容所需的工具。...运行以下命令,使用nano编辑器在应用程序目录my_app中创建app.rb: nano app.rb 复制并粘贴以下代码块: require 'rubygems' require 'sinatra/base...' class MyApp < Sinatra::Base get '/' do 'Hello world!'
但是该怎么部署一个Sinatra应用程序呢?让我们来看看… 如果你读过我的一篇用Sinatra构建一个数据驱动的应用程序的文章,你可能已经准备好尝试部署了。...由于Sinatra是一个Ruby应用程序,所以部署起来并不像要部署一个PHP应用程序那么简单,但它仍然并不是太困难。 Sinatra入门......假设您认为本地的应用程序没有问题了,接下来要做的是确保您有下边这些文件: Gemfile config.ru 我在上面的帖子中描述的Gemfile包含在应用程序中使用的所有Ruby gems的引用: source.../main' run Sinatra::Application 您可以通过源代码管理系统Git部署到Heroku 。...然后,假设你已经提交了最新的更新,你可以这样做: git push heroku master 你会看到Heroku收到推送请求,压缩文件,安装所需的Ruby gem,然后,没有问题的话,部署你的应用程序
由于Sinatra是一个Ruby应用,所以部署起来并不像一个PHP应用程序那么简单,但它也不算难。 Sinatra入门 如果你刚刚开始接触Sinatra,这个帖子或许会帮到你。...如果你对你的程序在本地环境的运行情况感到满意(即你已经完成了应用程序的开发,并且其在本地运行没有问题),接下来要做的是确保你有以下文件: Gemfile config.ru 其中Gemfile包含对应用程序中使用的所有Ruby...我们只是需要一个文件来配置我们应用程序的运行方式: 在config.ru中你需要以下代码: require '..../main' run Sinatra::Application 通过Git(一种源代码管理系统)可以将应用程序部署到Heroku 。...(请你记住这一点) 然后,假设你已经完成了最新的更新,你可以这样做来使用git推送: git push heroku master 然后Heroku会收到git推送和压缩文件,并安装所需的Ruby gem
那么当提到部署一个Sinatra应用程序呢?让我们来看看… 如果你读过我的文章:用Sinatra构建一个数据驱动的应用程序,你可能已经准备好尝试部署了。...由于Sinatra是一个Ruby应用程序,所以部署起来并不像一个PHP应用程序那么简单,但它仍然不难。 Sinatra入门... 如果你刚刚开始入门Sinatra,你可能会觉得这个帖子有用。...假设您对本地应用程序感到满意,接下来要做的是确保您有一些文件: Gemfile config.ru 我在上面的帖子中描述的Gemfile包含对应用程序中使用的所有Ruby gems的引用: gem 'sinatra.../main' run Sinatra::Application 你可以通过源代码管理系统Git部署到Heroku 。...然后,假设你已经提交了最新的更新,你可以这样做: git push heroku master 你会看到Heroku收到推送,压缩文件,安装所需的Ruby gems,运气好的话,你将可以部署你的应用程序
keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application...image-20201201082322255 修改卷目录下面的代码。...@example.com" ENV REFRESHED_AT 2014-06-01 RUN apt-get -qq update && apt-get -qq install ruby ruby-dev...这下面是作者写的一个ruby程序。 可以去这里拿 给作者的程序增加可运行权限。 chmod +x webapp/bin/webapp 然后开始build镜像。...里面的内容直接在作者的示例代码里面拷贝。 在dockerbook-code/code/5/sinatra/webapp_redis下。
本文对这些框架进行一个快速浏览,并试图解读他们为业内人士欣赏(或忽视)的原因。 之前我们讨论过Merb,这也许是完成度最高的Rails替代者。...可以说它是与Rails最为接近的Ruby Web开发框架。 Camping将自己定义为一个代码量保持在4k字节大小以下的Web开发框架。...Og提供自动化数据库进化功能:当Ruby类变更后,Og会进行自动检测,同时改变对应的数据库。有些人总是会忘掉ActiveRecord的Migration功能。 ...Sinatra是基于最小化的DSL语法开发的,它的小型基础核心中不包括诸如ActiveRecord这样的模块。通过使用get/post action定义,Sinatra具备动态路由定义功能。...Ron指出,Sinatra不是为Robust web应用开发的,而是为了用来搭建小型的原型,其中的混合业务逻辑和展示层并不是问题。 那这样做有什么好处呢?
ruby-dev RUN gem install sinatra Dockerfile 基本的语法是 使用 # 来注释 FROM 指令告诉 Docker 使用哪个镜像作为基础 接着是维护者的信息...Setting up ruby (1:1.9.3.4) ... Setting up ruby1.9.1 (1.9.3.484-2ubuntu1) ......14.04 05ac7c0b9383 17 seconds ago 215.5 MB 五、上传镜像 用户可以通过 docker push 命令,把自己创建的镜像上传到仓库中来共享...docker save –o /data/testimage.tar testimage:latest 上面的第6行就是存出代码,这时在/data下就有一个testimage.tar文件,这时我们把本地镜像...Use userland proxy for loopback traffic 在文件/etc/sysconfig/docker中增加以下代码
在实践中,契约可以定义为一个JSON文件,或者一个XML的payload。只需要保证前后端共享同一个契约集合来做测试,那么集成工作就会从中受益。...1、moco,基于Java 2、wiremock,基于Java 3、sinatra,基于Ruby 看到sinatra被列在这里,可能熟悉Ruby的人会反对:它可是一个后端全功能的的程序库啊。...一个简单的做法是使用Sinatra来做一次url的转换: get '/api/feeds' do content_type 'application/json' File.open('mocks/feeds.json...后端开发 我在这个示例中,后端采用了spring-boot作为示例,你应该可以很容易将类似的思路应用到Ruby或者其他语言上。...然后我们预期返回的结果是一个长度为3的数组,然后数组中的第一个元素的publishDate字段不为空。
在实践中,契约可以定义为一个JSON文件,或者一个XML的payload。只需要保证前后端共享同一个契约集合来做测试,那么集成工作就会从中受益。...moco,基于Java wiremock,基于Java sinatra,基于Ruby 看到sinatra被列在这里,可能熟悉Ruby的人会反对:它可是一个后端全功能的的程序库啊。...一个简单的做法是使用Sinatra来做一次url的转换: get '/api/feeds' do content_type 'application/json' File.open('mocks...然后我们预期返回的结果是一个长度为3的数组,然后数组中的第一个元素的publishDate字段不为空。 ...代码 前后端的代码我都放到了Gitbub上,感兴趣的可以clone下来自行研究: bookmarks-frontend bookmarks-server
设置该选项,将新构建出的多个层压缩为一个新层,但是将无法在多个镜像之间共享新层;设置该选项,实际上是创建了新image,同时保留原有image。...--tag, -t,镜像的名字及tag,通常name:tag或者name格式;可以在一次构建中为一个镜像设置多个tag --network,默认default。...ruby-dev RUN gem install sinatra 格式说明: 每行命令都是以 INSTRUCTION.../sinatra:v2 ....ruby-dev ...
比如有时候我们需要调试单个 PHP 页面而不想搭建一套完整的 PHP 环境,亦或者我们只是临时的共享一下文件而不想搭建一套完整的 Web 服务器或者 FTP,那么本文讲述的这些简单、有趣而实用的的 One...1.9.2+ ruby -run -ehttpd ....-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, "...[1] Big list of http static server one-liners https://gist.github.com/willurd/5720255 [2] 300行python代码的轻量级
现在,我利用它运行一个Puma Web服务器,上面跑着一个简单的Sinatra应用。 在进一步介绍之前,你也许会想:这有什么实际的用途吗?...我还没有在安卓上部署任何“真正”的代码,但即使是最廉价的手机,一般也都有四核甚至八核CPU,至少2GB内存,所以理论上手机性能几乎接近最先进的云服务器(例如t2.nano就只有512MB内存)。...安装Ruby、Bundler、Sinatra和Puma Sinatra是一个轻量级的Web应用程序框架,而Puma是Web服务器。 Ruby就是Ruby!...在安卓上运行: pkg install ruby gem install sinatra puma 安装nginx nginx是Web服务器、反向代理和负载均衡器。...在我的配置中,我将其改成了 /data/data/com/termux/files/home/android-sinatra。
在 Java 编程世界中,一种名为 “Model 2” 的设计模式迅速出现,其中涉及将应用程序代码放入 Java servlet 中,数据则放在类名为 Java Bean 的类中, 如图一所示: [1240...通过 MVC 设计模式,“ Controller ” 类定义了使用类名为 “router(路由)”映射到 URL 模式的方法。控制器方法利用 “Model” 类来封装业务逻辑和核心应用程序实体的数据。...这种基于服务的架构被证明是非常强大的,因为它消除了对共享代码库的依赖,并且允许应用程序开发人员进一步分离他们的应用程序组件。...该应用程序被部署为单个文件(即 Java)或以同一目录(即 Rails)为根的文件集合。所有的应用程序代码都在同一个进程中运行。扩展需要将完全相同的应用程序代码的多个副本部署到多个服务器。...例如,下方的 DockerFile 可以定义一个使用 Ruby 和 Sinatra 框架的微服务 Docker 镜像: FROM ubuntu:14.04 MAINTAINER John Doe <jdoe
尝试过Python/Ruby/Nodejs/Golang语言开发的人往往难以适应Java Web框架,相对于这些语言提供的web框架来说,Java的Web框架显的过于笨重了。...作者坦言Spark框架的灵感源于Ruby的Sinatra微框架,正好赶上了Java8迟来的闭包,于是就诞生了看起来非常轻量级的Spark。...static void main(String[] args) { get("/hello", (req, res) -> "Hello World"); } } 运行一下上面的代码...,你就可以在浏览器里访问http://localhost:4567/hello这个了 我们来比较一下Sinatra框架的Hello World require 'sinatra' get '/' do...{\"message\":\"Custom 404\"}"; }); // Using Route internalServerError((req, res) -> { res.type("application
Linux容器技术使用了类似cnames和namespaces这样的内核接口,它允许不同容器共享相同的内核,同时容器之间还进行了完全的隔离。...Docker同样为容器镜像提供了一个类GitHub的资源库DockerHub,让容器的共享和发布非常简单,也正是这种相同主机上的容器隔离简易了不同语言开发的微服务代码部署。...举个例子,下面代码中的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:...微服务鼓励软件开发者将整个软件解耦为较小的功能片段,并且这些功能片段能够应对外界的故障,这为我们带来了敏捷性和适应性。
It came out of an April Fool's joke but proved popular enough to make into a serious application in its...Flask 受到了基于 Ruby 语言的Sinatra项目的影响。...if __name__ == "__main__": app = web.application(urls, globals()) app.run() Rornado 总结: 三个
因为我们已经搭建好了ruby环境。..._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.gem Fetching rb-fsevent-0.11.0.gem...nokogiri-1.12.5-java.gem Fetching octicons-12.1.0.gem Fetching mustache-0.99.8.gem Fetching mustache-sinatra...主要错误提示为: ArgumentError at /gollum/create/Home invalid byte sequence in GBK 说的就是我们的编码造成的错误。
Sinatra Build and Test') { //To build and run a Ruby Application steps {...Skipping Ruby Sinatra build and test." } } catch (Exception...根据我提供的语言,系统将从您的存储库中识别源代码,并根据我们之前讨论的管道脚本安装、构建和执行测试。...Java、Maven、Node.js、Python 等(您为项目选择的语言将取决于适用的安装要求。)在这里,我在项目中使用 Node.js。...第 7 阶段(Docker 构建和推送) 在此阶段,我们将在构建源代码后对我们的项目进行 dockerize。
Processing triggers for sgml-base (1.26+nmu4ubuntu1) ... ---> 3e46f256a08d Removing intermediate container...docker.io/centos latest 5182e96772bf 3 weeks ago 200 MB Docker 测试网站 先按照书上的代码敲一遍...ruby-dev build-essential redis-tools RUN gem install --no-rdoc --no-ri sinatra json redis RUN mkdir...# app.rb require "rubygems" require "sinatra" require "json" class App < Sinatra::Application...Sinatra 应用来提供存储。
Openshift中的策略有两类: 集群级别:控制OpenShift平台和项目的访问级别 本地级别:控制对自己项目的访问 我们看一下两者的对比: ?...四、安全上下文约束 Openshift的scc有两类:Privileged SCC和 Restricted SCC。...oc project paymentapp-dev oc new-app ruby~https://github.com/openshift/sinatra-example --name=sinatra...我们给镜像打一个test的标签: oc tag sinatra:latest sinatra:test ? ?...接下来,我们把镜像打上prod的tag,然后在生产环境部署: oc tag sinatra:test sinatra:prod -n paymentapp-dev ?
领取专属 10元无门槛券
手把手带您无忧上云