资讯专栏INFORMATION COLUMN

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

2501207950 / 725人阅读

摘要:本文将着重介绍使用来部署一个基于的应用程序会多么便捷,当然这个过程主要基于插件。如你所见,这是一个基于的应用程序。这个基于的应用程序将无法被访问。总结可以如此简单地给一个基于的应用程序建立,相信很多人都会像笔者一样离不开它。

本文作者 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 应用程序:

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

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

发布 Docker image——docker:publishLocal

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

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

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

Docker 时间!

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

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

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

通过 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 官方博客。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26459.html

相关文章

  • Day 30: Play Framework —— Java开发者梦想框架

    摘要:通过如下命令发布控制台,运行编写的默认程序。默认禁用,启用它需要打开并取消注释以下行。启用数据库启动应用程序的数据库,框架提供了内置的数据库的支持。当用户发出请求到,一个新的将被创建。方法为给定的获取,把这个转换成格式并返回响应。 编者注:我们发现了有趣的系列文章《30天学习30种新技术》,正在翻译,一天一篇更新,年终礼包。下面是第 30 天的内容。 今天是最后一天,我决定学习一...

    Code4App 评论0 收藏0
  • Play Framework升级到2.6.x填坑记录

    摘要:为了使用最新的,升级到配置修改根据官网的升级指南,修改文件,更改插件版本号文件中,把和单独加入。此文件为首页的模板。推测可能是版本和版本的首页模板不同,于是到官网下载版本的,找到并覆盖项目的相应文件。添加插件的语句至此,升级成功完成。 为了使用最新的Play WS Api,升级到play 2.6.21 1.配置修改 根据官网的升级指南,修改plugins.sbt文件,更改插件版本号:a...

    voidking 评论0 收藏0
  • DevOps 基于Walle小型持续集成实战(五)基于Walle发布Java应用

    摘要:本章用于讲解如何在下构建和运行。编译发版都是基于的容器,下完成的。 本章用于讲解如何在walle下构建和运行JavaWeb。主要包含SpringBoot,ScalaAkkaWeb应用,以Java -jar和Docker运行两种方式(Tomcat方式不讲,大家自行研究) 新建项目 项目中心 > 项目管理 > 新建项目 以下是一份配置好的项目表 分组 项目 参考 备注 基本配置 ...

    qc1iu 评论0 收藏0
  • Java实战之文章翻译:Better Java —— 教你如何编写现代化Java程式

    摘要:特别是在可能返回空的集合的情况下务必返回一个内容为空的集合而不是一个。对于集合类型,应该在任何允许的情况下使用的或者类。框架框架是你部署代码的一个很好地方式,其中较好的选择有与。包含了大量与文件相关的操作。 原文地址:这里 Java是目前世界上最流行的编程语言之一,但是并不是所有人都乐于使用它。不过Java其实是一个还不错的语言,也别是自从Java 8正式发布之后,所以我决定将我的一些...

    godruoyi 评论0 收藏0
  • 确,Java存在缺陷。但是……

    摘要:是当时唯一的书,而且只有语言规范。仍然在中使用未来可能被取代,但不是现在。仍然是大学里教授的主要语言,并且存在于很多优秀的库中,比如。笔者期待积极的讨论。的确存在缺陷,但这些缺陷并不妨碍它在世界上最主要的公司和系统内全天候地完成工作。 【编者按】本文作者为资深码农 Tim Spann,主要讲述 Java 让人无法抗拒的众多优点以及一些些缺陷。本文系国内 ITOM 管理平台 OneAPM...

    wayneli 评论0 收藏0

发表评论

0条评论

2501207950

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<