20-05-22
banq
在本文中,假设您已经了解Docker和API开发的原理,我将向您展示如何对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>default</id> <goals> <goal>build</goal> <goal>push</goal> </goals> </execution> </executions> <configuration> <useMavenSettingsForAuth>true</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 package |
运行'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