需要准备
- 一个熟悉的 IDE 开发工具
- JDK 7及以上
- Gradle 3.2以上
- Docker 17
容器化项目
1.传统的方式运行 spring boot 项目
还是使用上章中 login 工程,我们在 login 工程目录下执行gradle build
编译命令,并在 build/libs 目录下生成了项目的 jar 包,接下来在命令行直接运行java -jar build/libs/login.jar
启动 spring boot 项目,然后使用 Postman 访问 http://localhost:8080/cm/login/ 接口,返回正常数据,如下图:
![v2-eef64d1767a0837d7ca3006fee9eca0a_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/7c35b5ed311b1348cbb6bfba3c49c7dd.jpeg)
2.对项目进行容器化
Docker 一般会使用一个叫 Dockerfile 的文件来定义镜像层,所以我们也在 login 工程止录下创建一个叫 Dockerfile 的文件,在其中来定义如下代码:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD target/login.jar app.jar
ENV JAVA_OPTS=""
ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
其中 FROM 代表我们自己的镜像是从 openjdk:8-jdk-alpin 继承而来的。
VOLUME 挂载了 /tmp 目录到容器中,此目录为 Spring Boot 为 tomcat 创建的默认目录。
ENTRYPOINT 在容器启动后执行 java 命令来运行程序。
定义好 Dockerfile 文件后,我们再修改一下我们的 build.gradle 文件,在其中添加以下代码: