Docker Compose--部署SpringBoot项目--实战

原文网址:Docker Compose--部署SpringBoot项目--实战-CSDN博客

简介

本文用实战介绍Docker Compose部署SpringBoot项目。

-----------------------------------------------------------------------------------------------
分享Java真实高频面试题,吊打面试官: Java后端真实面试题大全 - 自学精灵
分享靠谱的Java高级实战,包含:高并发、架构、全局处理等:JavaWeb高级实战 - 自学精灵
-----------------------------------------------------------------------------------------------

1.创建SpringBoot项目

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
            
        
    


2.创建Dockerfile

创建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"]

3.生成镜像

1.将SpringBoot项目打包,生成.jar文件

本处生成的是:docker-springboot-0.0.1-SNAPSHOT.jar。

打包方法:在Idea里双击绿色剪头所指的位置

Docker Compose--部署SpringBoot项目--实战_第1张图片

2.将jar包和Dockerfile上传到服务器

注意:这两个放到同一路径之下。

3.生成镜像

在这两个文件所在的路径中执行命令:

docker build -t custom_docker-springboot:1.0 .

4.查看镜像

docker images

4.创建compose文件

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

5.创建并启动容器

docker compose up -d

6.测试

启动后查看容器

docker ps

访问:ip:8080/doc.html

Docker Compose--部署SpringBoot项目--实战_第2张图片

测试接口(可以看到:请求成功)

Docker Compose--部署SpringBoot项目--实战_第3张图片

备注

也可以到docker内部去看看日志,会在/log下生成日志文件。 

你可能感兴趣的:(docker,docker,容器,运维)