zoukankan      html  css  js  c++  java
  • 如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?

    本文作者 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 官方博客

  • 相关阅读:
    Scrapy中间件
    Scrapy简介
    Scrapy解析器xpath
    postman
    yarn
    brew 安装 yarn 时候失败
    immutability-helper 用途+使用方法
    js 正则
    react redux 应用链接
    react 事件传参数
  • 原文地址:https://www.cnblogs.com/oneapm/p/4719134.html
Copyright © 2011-2022 走看看