使用Docker部署 spring-boot maven应用的方法

2020-06-17 06:49:09易采站长站整理

本文介绍了使用Docker部署 spring-boot maven应用,分享给大家,具体如下:

部署过程分为以下几个步骤:

创建一个简单的spring-boot应用
打包运行应用
容器化应用
在pom文件中添加docker支持
创建docker镜像
运行docker容器
查看正在运行的容器
启动/关闭/重启/删除docker容器

1. 创建一个简单的spring-boot应用

在IntelliJ IDEA中File->New->Project:

然后点Next->Finish.

2. 打包运行应用

pom.xml中添加依赖:


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

添加一个控制器:


@Controller
public class HelloWorld{
@GetMapping("/hello")
public void helloworld(HttpServletResponse response) throws IOException {
response.getWriter().write("Hello Spring-boot");
}
}

运行项目,访问: http://localhost:8080/hello,如果出现: Hello Spring-boot 第二步完成.

3. 容器化应用

在项目目录创建Dockerfile文件: src/main/docker/Dockerfile(没有后缀),内容如下:


FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD demo-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

其中 demo-0.0.1-SNAPSHOT.jar 是项目打包后 /target/ 里面的文件名

4. 在pom文件中添加docker支持


<properties>
<docker.image.prefix>ramer</docker.image.prefix>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.11</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>