# springBootDocker
**Repository Path**: codezhx_admin/springBootDocker
## Basic Information
- **Project Name**: springBootDocker
- **Description**: 使用 docker 来启动 springboot项目
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-09-04
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# springBootDocker
#### 项目介绍
使用 docker 来启动 springboot项目
springBoot版本:2.0.4.RELEASE
#### 项目构建顺序
- 使用spring Initialzr 初始化项目(需要 web-start)
- 初始化一个RestController 并且可以启动项目后进行访问
- 在pom.xml 文件中 新增 zhxspringboot 在 properties 节点中
- 在pom.xml 文件中 新增 plugins
```
com.spotify
docker-maven-plugin
${docker.image.prefix}/${project.artifactId}
src/main/docker
/
${project.build.directory}
${project.build.finalName}.jar
```
- 在src/main/docker 下创建 Dockerfile文件(注意大小写) 文件包含以下内容 其中yourJarName 是你jar包的名字
```
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD yourJarName.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
```
1. FROM ,表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载
2. VOLUME ,VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
3. ADD ,拷贝文件并且重命名
4. ENTRYPOINT ,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT
- 确保机器内部mvn jdk 环境 正确后 使用命令 mvn package docker:build 如果使用的是ide 开发工具的话可以直接在 edit configurations 中添加 maven 然后在 command line 中加入 mvn package docker:build 命令
- 运行命令
- 运行成功的情况下:
```
Step 2/4 : VOLUME /tmp
---> Running in badd2e445fd9
---> b02e14ad9f5a
Removing intermediate container badd2e445fd9
Step 3/4 : ADD docker-0.0.1-SNAPSHOT.jar app.jar
---> 879c480a31a0
Step 4/4 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
---> Running in 48108fb5a1f2
---> ac233e7d67f2
Removing intermediate container 48108fb5a1f2
ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}
Successfully built ac233e7d67f2
Successfully tagged zhxspringboot/docker:latest
[INFO] Built zhxspringboot/docker
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
```
- 打开命令行 输入 docker images 可以看到刚才打包的镜像
```
ages
REPOSITORY TAG IMAGE ID CREATED SIZE
zhxspringboot/docker latest ac233e7d67f2 10 minutes ago 119MB
openjdk 8-jdk-alpine 5801f7d008e5 7 weeks ago 103MB
alpine latest e21c333399e0 9 months ago 4.14MB
centos latest 3fa822599e10 9 months ago 204MB
prom/prometheus latest 67141fa03496 9 months ago 80.2MB
```
- docker run -p 8080:8080 -t yourname/yourname 在命令行中输入如下命令 即可开始跑你的服务
- 启动完成之后我们使用docker ps查看正在运行的镜像
- 打开浏览器 即可访问服务