使用Docker打包容器化SpringBoot的RESTful API -Rafael Ferreira

微信扫一扫,分享到朋友圈

使用Docker打包容器化SpringBoot的RESTful API -Rafael Ferreira

在本文中,假设您已经了解Docker和AP​​I开发的原理,我将向您展示如何对Java API进行Docker化:生成docker镜像并dockerizing Springboot API,

我们将使用的API是使用以下技术开发的:

  • Java
  • Springboot
  • Maven
  • MongoDB
  • Docker

这是项目的链接 https://github.com/rafaelferreiram/quick-api.git

为了使用maven生成docker镜像,我们需要使用一个有助于做到这一点的框架,而这就是dockerfile-maven,这是Spotify创建的插件,可以简化docker镜像的生成和通信。

在开始创建Docker镜像之前,我们必须创建一个Dockerfile文件,该文件负责将jar和配置暴露给Docker。dockerfile文件必须在项目根目录中生成:

FROM openjdk:8-jre
RUN mkdir app
ARG JAR_FILE
ADD /target/${JAR_FILE} /app/com.api-0.0.1-SNAPSHOT.jar
WORKDIR /app
ENTRYPOINT java -jar com.api-0.0.1-SNAPSHOT.jar

设置完Dockerfile配置后,我们必须将dockerfile-maven插件添加到项目的pom.xml中,标签为<plugins>,如下所示:

<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.13</version>
<executions>
<execution>
<id><b>default</b></id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<useMavenSettingsForAuth><b>true</b></useMavenSettingsForAuth>
<repository>rafaelferreiram/brand-api</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>

请注意,在plugin标签内,我们还有另一个标签“ configuration”,可以在其中将docker config设置为我们的项目,例如

  • useMavenSettingsForAuth(我们将true设置为通过Maven设置来设置Authentication )
  • repository (我们必须告知我们的DockerID和所需映像的名称,因此,{dockerID}/{imageName},这用于将映像发送到Docker Hub。)
  • tag(version/imageTag。)
  • JAR_FILE(由我们的项目生成的.jar文件)。

设置Dockerfile并配置pom.xml之后,我们可以继续执行下一步以生成Docker映像。为此,我们必须转到项目根目录并运行以下命令,该命令将在Target文件夹内生成一个.jar文件。

mvn <b>package</b>

运行’mvn package’之后,我们可以检查本地docker镜像,看是否在其中。我们可以通过运行:

docker images

正式运行:有两种运行docker映像的方法,第一种将运行并向我们显示应用程序日志,第二种将在后台模式下运行。

docker run -p 8080:8080 {dockerID}/brand-api:0.0.1-SNAPSHOT

要在后台模式下运行它,我们只需要在命令中添加一个属性。’-d’:

docker run -d -p 8080:8080 {dockerID}/brand-api:0.0.1-SNAPSHOT

访问:localhost:8080/brand/brands

精英直播来势汹汹,带货模式进阶换血

上一篇

继视频号后,超120万人入局QQ“小世界”,腾讯短视频这次有救了?

下一篇

你也可能喜欢

使用Docker打包容器化SpringBoot的RESTful API -Rafael Ferreira

长按储存图像,分享给朋友