文档章节

如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?

OneAPM蓝海讯通
 OneAPM蓝海讯通
发布于 2015/08/10 20:23
字数 745
阅读 363
收藏 3

本文作者 Jacek Laskowski 拥有近20年的应用程序开发经验,现 CodiLime 的软件开发团队 Leader,曾从 IBM 取得多种资格认证。在这篇博文中,Jacek 分享了 Warsaw Scala Enthusiasts Meetup 上 Rafal Krzewski 介绍的一个 Docker sbt 插件。本文系 OneAPM 工程师编译整理:

虽然在 DeepSense.io 项目中,Docker 已得到了非常深入的应用,但是如果没有接触到 Rafal Krzewski 在 Warsaw Scala Enthusiasts Meetup 上分享的两个 Docker sbt 插件中的一个—— sbt-native-packager (另一个是 sbt-docker ),笔者仍然不会意识到部署一个 Scala Web 应用程序可以这么简单。

本文将着重介绍使用 Docker 来部署一个基于 Play Framework 的 Scala Web 应用程序会多么便捷,当然这个过程主要基于 sbt-native-packager 插件。

建立基于 Play Framework Web 的应用程序

通过 Typesafe Activator 工具使用 activator new 命令建立一个新的 Web 应用程序:

如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用

使用 cd 命令进入 play-dockerized 目录,并执行 sbt run 命令来启动应用程序:

如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用

到了这里,http://localhost:9000 已经可以被访问了。如你所见,这是一个基于 Play Framework 2.4.2 的 Web 应用程序。

如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用

发布 Docker image——docker:publishLocal

因为要使用 sbt-native-packager 插件,所以需要使用 Ctrl+D 结束之前的命令,并且执行 sbt docker:publishLocal 命令:

如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用

在这里,相信很多人已经看到了 sbt-native-packager 插件设计的聪明之处,它非常巧妙地利用 publishLocal 任务来发布一个 Docker repository

如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用

通过上一步,一个全新的 Docker image play-dockerized:1.0-SNAPSHOT 被建立,这里可以使用 docker images 来查看它的属性。

Docker 时间!

你可以使用 docker run 命令在 play-dockerized 外开启一个容器。

如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用

docker run 命令的替代选项是使用 -p 来发现 Docker 虚拟网络之外的9000端口(本地可用端口是8080),同时使用-- name 为容器友好命名,而不是默认的哈希命名方式。

如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用

在另一个终端 docker ps 来查看容器的运行情况:

如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用

通过 docker stop play-8080 来终止这个容器。这个基于 Play Framework 的应用程序将无法被访问。如果重新启动的话,可以执行 docker start play-8080 命令。

总结

可以如此简单地给一个基于 Play Framework 的 Scala Web 应用程序建立 Docker image,相信很多人都会像笔者一样离不开它。一旦将一个应用程序转换成 Docker image,那么你就可以使用其他命令,同时你也可以甩开应用程序对环境的依赖。

原文链接Docker Your Scala Web Application (Play Framework)

本文系 OneAPM 工程师编译整理。OneAPM 是应用性能管理领域的新兴领军企业,能帮助企业用户和开发者轻松实现:缓慢的程序代码和 SQL 语句的实时抓取。想阅读更多技术文章,请访问 OneAPM 官方博客

© 著作权归作者所有

OneAPM蓝海讯通
粉丝 94
博文 631
码字总数 1266889
作品 0
海淀
私信 提问
加载中

评论(2)

livehl
livehl
好吧
mac 下需要下载 Docker Toolbox
livehl
livehl
mac 下执行报错 error] Post http://%2Fvar%2Frun%2Fdocker.sock/v1.20/build?cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&forcerm=1&memory=0&memswap=0&rm=1&t=handka2%3A2.0.0&ulimits=null: dial unix /var/run/docker.sock: connect: no such file or directory.
[error] * Are you trying to connect to a TLS-enabled daemon without TLS?
[error] * Is your docker daemon up and running?
java.lang.RuntimeException: Nonzero exit value: 1
  at com.typesafe.sbt.packager.docker.DockerPlugin$.publishLocalDocker(DockerPlugin.scala:288)
Play Framework 2.0 介绍

Play Framework 刚刚发布了 2.0 正式版,来看看 Play Framework 2.0 的新特性介绍吧。 原生支持 Java 和 Scala Play Framework 1.x 完全是采用 Java 编写的,可通过插件来支持 Scala,而 2....

曾沙
2012/11/26
376
0
Play Framework 2.0 介绍

Play Framework 刚刚发布了 2.0 正式版,来看看 Play Framework 2.0 的新特性介绍吧。 原生支持 Java 和 Scala Play Framework 1.x 完全是采用 Java 编写的,可通过插件来支持 Scala,而 2....

红薯
2012/03/14
13.3K
20
在 Scala IDE 2.0 中设置和使用 Play Framework 2.0

本文将向你介绍如何在 Scala IDE 开发环境中设置并开始使用 Play Framework 2.0 . 前提要求 Eclipse 3.6.2 (Helios) 并安装好 Scala IDE for Scala 2.9 插件 (update site: http://download....

红薯
2012/02/17
3.7K
3
Play framework 2 Web 应用的安全库 - play-pac4j

play-pac4j 项目是 Play framework v2 Web 应用程序的一个简单而强大的安全库,它支持身份验证和授权,以及注销和高级功能,如 CSRF 保护。 它可以和 Deadbolt 搭配使用,基于 Play 2.6(和 ...

匿名
2018/05/16
433
0
Java Web框架 - Play Framework

Play Framework是基于一个轻量级的,无状态的,Web友好的架构。Play 建立在Akka,Play 提供可预测的和最小的资源消耗(CPU,内存,线程)的高度可扩展的应用程序。 开发者友好 进行更改,并只...

匿名
2008/11/17
122K
19

没有更多内容

加载失败,请刷新页面

加载更多

Groovy单元测试框架spock数据驱动Demo

spock是一款全能型的单元测试框架。 上次文章分享了spock框架的基础功能的使用,在此基础上,我根据自己写的Groovy的封装方法、数据驱动以及一些Groovy的高级语法做了一些尝试。发现还是有一...

八音弦
21分钟前
3
0
linux 安装nvm,通过nvm安装node

1,nvm git地址点击打开链接,安装命令 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash or Wget: wget -qO- https://raw.githubusercontent.com/cr......

JamesView
29分钟前
4
0
Spring Boot快速入门

简介 官方文档 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。使用Spring boot以后,搭建一个spring应用和开发变得很简单。 Springboot...

快乐搬砖
42分钟前
5
0
关于看书看剧看电影

多看一些书,思想改变行为 改变一些观念。 一些好的电视剧和电影也要看一看,除了娱乐以外 还有的可以让人不那么单纯,人是很复杂的。 以后可以把自己看的一些剧 书的观后看啥的可以写写博客...

T型人才追梦者
43分钟前
4
0
数据流中的中位数

参考:https://sunweiguo.github.io/2019/03/18/%E5%89%91%E6%8C%87offer/%E3%80%90%E9%9D%A2%E8%AF%95%E9%A2%9863-%E6%95%B0%E6%8D%AE%E6%B5%81%E4%B8%AD%E7%9A%84%E4%B8%AD%E4%BD%8D%E6%95......

Garphy
43分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部