使用Docker构建并测试web应用程序

使用Docker构建并测试web应用程序

构建Sinatra应用程序

构建Dockerfile

FROM ubuntu:lastest
MAINTAINER James Turnbull james@example
ENV REFRESHED_AT 2014-06-01
RUN apt-get update
RUN apt-get -y install ruby ruby-dev build-essential redis-tools
RUN gem install --no-rdoc --no-ri sinatra json redis
RUN mkdir -p /opt/webapp
EXPOSE 4567
CMD ["/opt/webapp/bin/webapp"]

创建Ubuntu镜像,安装Ruby和RubyGem,使用gem命令安装sinatra、json、redis,创建/opt/webapp目录存放web应用程序,公开WEBrick默认端口4567,CMD指定/opt/webapp/bin/webapp作为Web应用程序启动文件。
注意原书中使用的ubuntu是14.04版本,次版本这里安装Ruby时目前安装的版本是1.9.X,在安装sinatra和redis会报错,要求安装ruby版本>2.3,造成构建失败。

使用docker build命令构建镜像(注意后便有个“.”)

docker build -t dahl/sinatra .

下载Sinatra Web应用程序源码,修改文件属性

wget https://github.com/turnbullpress/dockerbook-code/archive/master.zip 
unzip master.zip
cp  -Rf XXXXXXXX webapp/
chmod +x $PWD/webapp/bin/webapp

原书中 http://dockerbook.com/code/5/sinatra/webapp/ 地址已经不能用了。可以从github上下载,然后解压到制定的目录。

启动第一个Sinatra容器

docker run -d -p 4567 --name webapp -v $PWD/webapp:/opt/webapp/ dahl/sinatra
curl -i -H 'Accept: application/json' -d 'name=Foo&status=Bar' http://localhost:32778/json
# 返回结果
HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Content-Length: 29
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Server: WEBrick/1.4.2 (Ruby/2.5.1/2018-03-29)
Date: Wed, 12 Jun 2019 13:25:48 GMT
Connection: Keep-Alive		
{"name":"Foo","status":"Bar"}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值