一、需求说明
二、效果图
三、项目结构
四、核心源码
♻️Java依赖与接口
♨️Docker相关源码
五、部署项目
⛵小结
一、需求说明编写一个SpringBoot + Redis 的微服务项目,并提供 hello接口,每访问一次接口,计数器+1
二、效果图 三、项目结构目录说明
docker-compose.yml :项目的启动文件,配置编排等
Dockerfile:项目上线所需要的依赖,以及启动方式
四、核心源码 ♻️Java依赖与接口依赖文件
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>org.example</groupId>
<artifactId>demo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>libs/</directory>
<targetPath>libs</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
</build>
</project>
接口
HelloController
package com.wanshi.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author whc
* @date 2022/6/9 10:06
*/
@RestController
public class HelloController {
@Autowired
private StringRedisTemplate redisTemplate;
@GetMapping("/hello")
public String hello() {
Long views = redisTemplate.opsForValue().increment("views");
return "hello, xiaowang, views:" + views;
}
}
配置文件
application.yml
server:
port: 8080
spring:
redis:
host: redis
♨️Docker相关源码
Dockerfile
FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
docker-compose.yml
version: '3.8'
services:
xiwoangapp:
build: .
image: xiaowangapp
depends_on:
- redis
ports:
- "8080:8080"
redis:
image: "redis:3.0.7"
五、部署项目
打包后端项目通过命令
mvn clean package
jar包与配置文件上传至Linux服务器,新建指定文件夹(通过Filezilla上传文件)
执行命令启动
docker-compose up
部署成功后我们查看服务是否启动
docker ps
本机进行访问
curl localhost:8080/hello
⛵小结
以上就是【Bug 终结者】对 【云原生】Docker Compose 进阶 – 部署微服务项目上线 的简单介绍 ,Compose 部署项目,实战练习,进阶!