摘要:本文將著重介紹使用來部署一個(gè)基于的應(yīng)用程序會多么便捷,當(dāng)然這個(gè)過程主要基于插件。如你所見,這是一個(gè)基于的應(yīng)用程序。這個(gè)基于的應(yīng)用程序?qū)o法被訪問??偨Y(jié)可以如此簡單地給一個(gè)基于的應(yīng)用程序建立,相信很多人都會像筆者一樣離不開它。
本文作者 Jacek Laskowski 擁有近20年的應(yīng)用程序開發(fā)經(jīng)驗(yàn),現(xiàn) CodiLime 的軟件開發(fā)團(tuán)隊(duì) Leader,曾從 IBM 取得多種資格認(rèn)證。在這篇博文中,Jacek 分享了 Warsaw Scala Enthusiasts Meetup 上 Rafal Krzewski 介紹的一個(gè) Docker sbt 插件。本文系 OneAPM 工程師編譯整理:
雖然在 DeepSense.io 項(xiàng)目中,Docker 已得到了非常深入的應(yīng)用,但是如果沒有接觸到 Rafal Krzewski 在 Warsaw Scala Enthusiasts Meetup 上分享的兩個(gè) Docker sbt 插件中的一個(gè)—— sbt-native-packager (另一個(gè)是 sbt-docker ),筆者仍然不會意識到部署一個(gè) Scala Web 應(yīng)用程序可以這么簡單。
本文將著重介紹使用 Docker 來部署一個(gè)基于 Play Framework 的 Scala Web 應(yīng)用程序會多么便捷,當(dāng)然這個(gè)過程主要基于 sbt-native-packager 插件。
建立基于 Play Framework Web 的應(yīng)用程序
通過 Typesafe Activator 工具使用 activator new 命令建立一個(gè)新的 Web 應(yīng)用程序:
使用 cd 命令進(jìn)入 play-dockerized 目錄,并執(zhí)行 sbt run 命令來啟動應(yīng)用程序:
到了這里,http://localhost:9000 已經(jīng)可以被訪問了。如你所見,這是一個(gè)基于 Play Framework 2.4.2 的 Web 應(yīng)用程序。
發(fā)布 Docker image——docker:publishLocal
因?yàn)橐褂?sbt-native-packager 插件,所以需要使用 Ctrl+D 結(jié)束之前的命令,并且執(zhí)行 sbt docker:publishLocal命令:
在這里,相信很多人已經(jīng)看到了 sbt-native-packager 插件設(shè)計(jì)的聰明之處,它非常巧妙地利用 publishLocal 任務(wù)來發(fā)布一個(gè) Docker repository。
通過上一步,一個(gè)全新的 Docker image play-dockerized:1.0-SNAPSHOT 被建立,這里可以使用 docker images 來查看它的屬性。
Docker 時(shí)間!
你可以使用 docker run 命令在 play-dockerized 外開啟一個(gè)容器。
docker run 命令的替代選項(xiàng)是使用 -p 來發(fā)現(xiàn) Docker 虛擬網(wǎng)絡(luò)之外的9000端口(本地可用端口是8080),同時(shí)使用-- name 為容器友好命名,而不是默認(rèn)的哈希命名方式。
在另一個(gè)終端 docker ps 來查看容器的運(yùn)行情況:
通過 docker stop play-8080 來終止這個(gè)容器。這個(gè)基于 Play Framework 的應(yīng)用程序?qū)o法被訪問。如果重新啟動的話,可以執(zhí)行 docker start play-8080 命令。
總結(jié)
可以如此簡單地給一個(gè)基于 Play Framework 的 Scala Web 應(yīng)用程序建立 Docker image,相信很多人都會像筆者一樣離不開它。一旦將一個(gè)應(yīng)用程序轉(zhuǎn)換成 Docker image,那么你就可以使用其他命令,同時(shí)你也可以甩開應(yīng)用程序?qū)Νh(huán)境的依賴。
原文鏈接:Docker Your Scala Web Application (Play Framework)
本文系 OneAPM 工程師編譯整理。想閱讀更多技術(shù)文章,請?jiān)L問 OneAPM 官方博客。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26459.html
摘要:通過如下命令發(fā)布控制臺,運(yùn)行編寫的默認(rèn)程序。默認(rèn)禁用,啟用它需要打開并取消注釋以下行。啟用數(shù)據(jù)庫啟動應(yīng)用程序的數(shù)據(jù)庫,框架提供了內(nèi)置的數(shù)據(jù)庫的支持。當(dāng)用戶發(fā)出請求到,一個(gè)新的將被創(chuàng)建。方法為給定的獲取,把這個(gè)轉(zhuǎn)換成格式并返回響應(yīng)。 編者注:我們發(fā)現(xiàn)了有趣的系列文章《30天學(xué)習(xí)30種新技術(shù)》,正在翻譯,一天一篇更新,年終禮包。下面是第 30 天的內(nèi)容。 今天是最后一天,我決定學(xué)習(xí)一...
摘要:為了使用最新的,升級到配置修改根據(jù)官網(wǎng)的升級指南,修改文件,更改插件版本號文件中,把和單獨(dú)加入。此文件為首頁的模板。推測可能是版本和版本的首頁模板不同,于是到官網(wǎng)下載版本的,找到并覆蓋項(xiàng)目的相應(yīng)文件。添加插件的語句至此,升級成功完成。 為了使用最新的Play WS Api,升級到play 2.6.21 1.配置修改 根據(jù)官網(wǎng)的升級指南,修改plugins.sbt文件,更改插件版本號:a...
摘要:本章用于講解如何在下構(gòu)建和運(yùn)行。編譯發(fā)版都是基于的容器,下完成的。 本章用于講解如何在walle下構(gòu)建和運(yùn)行JavaWeb。主要包含SpringBoot,ScalaAkkaWeb應(yīng)用,以Java -jar和Docker運(yùn)行兩種方式(Tomcat方式不講,大家自行研究) 新建項(xiàng)目 項(xiàng)目中心 > 項(xiàng)目管理 > 新建項(xiàng)目 以下是一份配置好的項(xiàng)目表 分組 項(xiàng)目 參考 備注 基本配置 ...
摘要:特別是在可能返回空的集合的情況下務(wù)必返回一個(gè)內(nèi)容為空的集合而不是一個(gè)。對于集合類型,應(yīng)該在任何允許的情況下使用的或者類??蚣芸蚣苁悄悴渴鸫a的一個(gè)很好地方式,其中較好的選擇有與。包含了大量與文件相關(guān)的操作。 原文地址:這里 Java是目前世界上最流行的編程語言之一,但是并不是所有人都樂于使用它。不過Java其實(shí)是一個(gè)還不錯(cuò)的語言,也別是自從Java 8正式發(fā)布之后,所以我決定將我的一些...
摘要:是當(dāng)時(shí)唯一的書,而且只有語言規(guī)范。仍然在中使用未來可能被取代,但不是現(xiàn)在。仍然是大學(xué)里教授的主要語言,并且存在于很多優(yōu)秀的庫中,比如。筆者期待積極的討論。的確存在缺陷,但這些缺陷并不妨礙它在世界上最主要的公司和系統(tǒng)內(nèi)全天候地完成工作。 【編者按】本文作者為資深碼農(nóng) Tim Spann,主要講述 Java 讓人無法抗拒的眾多優(yōu)點(diǎn)以及一些些缺陷。本文系國內(nèi) ITOM 管理平臺 OneAPM...
閱讀 1136·2021-11-24 09:38
閱讀 3243·2021-11-19 09:56
閱讀 2965·2021-11-18 10:02
閱讀 735·2019-08-29 12:50
閱讀 2572·2019-08-28 18:30
閱讀 867·2019-08-28 18:10
閱讀 3675·2019-08-26 11:36
閱讀 2650·2019-08-23 18:23