原文网址:Docker Compose--部署SpringBoot项目--实战-CSDN博客
本文用实战介绍Docker Compose部署SpringBoot项目。
-----------------------------------------------------------------------------------------------
分享Java真实高频面试题,吊打面试官: Java后端真实面试题大全 - 自学精灵
分享靠谱的Java高级实战,包含:高并发、架构、全局处理等:JavaWeb高级实战 - 自学精灵
-----------------------------------------------------------------------------------------------
Controller
package com.knife.example.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
@Slf4j
@Api(tags = "测试")
@RequestMapping("test")
@RestController
public class HelloController {
@ApiOperation("测试1")
@PostMapping("test1")
public String test() {
return "success";
}
}
application.yml
spring:
application:
name: docker-springboot
logging:
file:
name: log/${spring.application.name}.log
level:
root: info
pom.xml
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.4.13
com.knife
docker-springboot
0.0.1-SNAPSHOT
docker-springboot
Demo project for Docker Spring Boot
1.8
org.springframework.boot
spring-boot-starter-web
com.github.xiaoymin
knife4j-spring-boot-starter
3.0.3
org.springframework.boot
spring-boot-maven-plugin
创建Dockerfile文件,内容如下:
# 基础镜像使用java
# 也可以用:FROM openjdk:8
FROM java:8
# 作者
MAINTAINER knife
# 不是真正的发布端口,只是容器部署人员与建立image的人员之间的交流。
# 即:建立image的人员告诉容器布署人员容器应该映射哪个端口给外界
EXPOSE 8080
# 指定临时文件目录,此步骤非必须。如果Java里要操作文件,就要添加这个配置
# 会在主机 /var/lib/docker 创建文件,连接到容器的/tmp。SpringBoot的内嵌Tomcat默认使用/tmp作为工作目录
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD *.jar app.jar
# ENTRYPOINT:docker启动时,运行的命令。这里直接运行jar服务。
ENTRYPOINT ["java","-jar","/app.jar"]
1.将SpringBoot项目打包,生成.jar文件
本处生成的是:docker-springboot-0.0.1-SNAPSHOT.jar。
打包方法:在Idea里双击绿色剪头所指的位置
2.将jar包和Dockerfile上传到服务器
注意:这两个放到同一路径之下。
3.生成镜像
在这两个文件所在的路径中执行命令:
docker build -t custom_docker-springboot:1.0 .
4.查看镜像
docker images
docker-compose.yml
version: '3'
services:
custom_docker-springboot:
# 启动方式
#restart: unless-stopped
# 镜像
image: custom_docker-springboot:1.0
# 容器名字
container_name: custom_docker-springboot1.0
ports:
- 8080:8080
environment:
- TZ=Asia/Shanghai
docker compose up -d
启动后查看容器
docker ps
访问:ip:8080/doc.html
测试接口(可以看到:请求成功)
备注
也可以到docker内部去看看日志,会在/log下生成日志文件。