显示导航

365bet地区作为Docker容器

了解如何将365bet地区应用程序作为Docker容器分发

s伊万·洛佩斯(IvánLópez)

365bet地区版本 4.0.1

训练

365bet地区培训由创建并积极维护365bet地区框架的人们开发和交付

入门

Docker已成为一种运行应用程序的好方法,而无需安装任何依赖项来运行它

在本指南中,您将编写一个365bet地区应用程序,该应用程序将打包为Docker映像并在Docker容器中运行

如何完成指南

要开始,请执行以下操作

要么

365bet地区指南存储库包含两个文件夹

  • 初始初始项目通常是一个简单的365bet地区应用程序,其中包含一些其他代码,可以帮助您快速入门

  • 完成一个完整的示例它是按照指南中介绍的步骤进行操作并将这些更改应用于文档的结果。初始

要完成指南,请转到初始

  • 光盘进入grails引导grails作为docker容器的初始名称

并按照下一节中的说明进行操作

您可以直接前往完成的例子如果你光盘进入grails在docker容器完成时引导grails

编写指南

安装和配置Docker

如果您尚未安装Docker,则需要安装它.

根据您的环境,您可能需要将Docker的可用内存增加到GB或更多。

Docker首选项

提示获取风筝

Kitematic是用于管理Docker容器的出色桌面应用程序。首次单击“打开Kitematic”时,它将提示您下载并安装它。然后,您可以使用Kitematic来查看容器的输出,管理其设置等。

风筝

Gradle Docker插件

在本指南中,我们使用Gradle Docker插件一个用于管理Docker映像和容器的Gradle插件

要安装Gradle插件,请修改建立gradle:

建立gradle
buildscript存储库mavenLocal maven url"https repo grails org grails核心"依赖类路径"org grails grails gradle插件$grails版本"类路径"gradle插件com github erdi webdriver二进制文件webdriver二进制文件gradle插件"类路径"org grails插件休眠"类路径"com bertramlabs插件资产管道gradle"类路径'com bmuschko gradle docker插件' (1)应用插入:"日食"应用插入:"理念"
应用插件大战(2)应用插入:"组织grails grails网站"应用插入:"与github erdi webdriver二进制文件"应用插入:"与bertramlabs资产管道"应用插入:"组织grails grails gsp"应用插入:"com bmuschko docker远程api" (1)
1 Gradle Docker插件
2 去掉战争插件,因为我们将生成一个可运行的jar

应用程式输入指令码

创建一个脚本,它将用作容器的入口点

src主docker应用入口sh
宾什Java Djava安全egd文件:/开发者/./乌兰多姆罐/应用程序应用程序罐

Gradle Docker任务

配置几个Gradle任务,这些任务使我们能够构建可运行的jar并将其与必要的资源一起复制到临时目录,从而生成一个Docker文件文件并最终构建docker映像

建立gradle
进口 com bmuschko gradle docker任务映像Dockerfile
进口 com bmuschko gradle docker任务映像DockerBuildImage扩展dockerTag"365bet地区样本${项目名}:${项目版本}"降低大小写(1)dockerBuildDir mkdir"${buildDir}码头工人") (2)任务准备类型复制取决于组装(3)描述'将文件从src主docker和application jar复制到Docker临时构建目录''码头工人''src主docker'从项目jar到dockerBuildDir任务createDockerfile类型Docker文件取决于准备Docker(4)描述'创建一个Dockerfile文件''码头工人'destFile项目文件"${dockerBuildDir}Docker文件"'openjdk u jdk高山'ExposurePort8080workingDir'应用程式'copyFile jar archiveName'应用罐'复制文件'应用入口点sh', '应用入口点sh' (5)runCommand'chmod x应用程序入口点sh'入口点'应用程序入口点sh' (5)任务buildImage类型DockerBuildImage取决于创建Dockerfile(6)描述'创建Docker映像以运行365bet地区应用程序''码头工人'inputDir文件dockerBuildDir图像添加dockerTag
1 定义docker镜像名称grails示例myProject
2 用于构建Docker映像的临时目录
3 复制可运行的jar文件和其他文件src主docker到临时目录
4 创建Docker文件文件
5 复制应用入口点sh脚本并将其定义为容器的入口点
6 构建Docker映像

内容应用入口点sh

src主docker应用入口sh
bin sh java Djava安全egd文件开发urandom jar应用程序application jar

构建应用

创建新的Gradle任务后,我们现在可以执行

gradlew buildImage

完成jar完成bootRepackage完成组装(1)完整准备Docker完整创建Dockerfile完整buildImage(2)使用context home ivan工作区构建图像作为docker容器完成grails构建docker使用tag grails示例完成图像示例从openjdk u jdk alpine e d步骤MAINTAINER John Doe电子邮件保护使用缓存ecbe步骤EXPOSE使用缓存aadd e步骤WORKDIR app使用缓存caf ef步骤COPY完成jar应用jar jar efef删除中间容器dccf步骤COPY app入口点sh app入口点sh be删除中间容器d cb bd步骤RUN chmod x应用入口点sh在Fab中运行a a删除中间容器b eb步骤ENTRYPOINT应用程序应用入口点sh在ae fd中运行删除中间容器ae成功构建fd成功标记grails示例完成(3)创建的ID为d BUILD SUCCESSFUL的图像总时间(以秒为单位)
1 之后组装新的docker任务已执行
2 使用Docker文件在上一个任务中生成docker命令的输出显示
3 图片grails样本完成已经被创造了
泊坞窗图片存储区标记图像ID已创建大小grails样本已在f d分钟前完成MB

运行应用程序

运行我们的码头化365bet地区应用程序非常简单

docker run p grails示例完成

几秒钟后,我们将看到消息365bet地区应用程序在HTTP本地主机在环境生产中

仅使用Docker

或者,您可以手动创建Docker文件

  • 删除Gradle任务创建DockerfilebuildImage.

  • 删除对Gradle Docker插件的依赖

  • 去掉src主docker应用入口sh我们直接在Dockerfile中定义CMD

  • 建立档案src主docker Dockerfile

src主docker Dockerfile
来自openjdk u jdk高山MAINTAINER John Doe电子邮件保护展示WORKDIR应用程序COPY jar应用程序jar CMD java Djava安全egd文件dev urandom jar应用程序应用程序jar

因为我们创造了Docker文件src主dockerGradle任务准备Docker将其与我们的应用程序可运行jar一起复制

创建图像

gradlew prepareDocker docker build tag grails示例完成构建docker

手动创建Dockerfile可将Docker映像生成与Docker Gradle插件解耦

帮助365bet地区

OCI赞助了本指南的创建OCI提供了几种365bet地区服务:

免费咨询

OCI 365bet地区团队包括365bet地区联合创始人Jeff Scott Brown和Graeme Rocher检查我们的365bet地区课程并向发展和维护365bet地区的工程师学习

Grails OCI团队