当前位置 : 主页 > 编程语言 > java >

【云原生】Docker Compose 进阶 -- 部署微服务项目上线

来源:互联网 收集:自由互联 发布时间:2022-07-13
一、需求说明 编写一个SpringBoot + Redis 的微服务项目,并提供 hello接口,每访问一次接口,计数器+1 二、效果图 三、项目结构 目录说明 docker-compose.yml :项目的启动文件,配置编排等


一、需求说明

编写一个SpringBoot + Redis 的微服务项目,并提供 hello接口,每访问一次接口,计数器+1

二、效果图

【云原生】Docker Compose 进阶 -- 部署微服务项目上线_docker

三、项目结构

【云原生】Docker Compose 进阶 -- 部署微服务项目上线_docker_02

目录说明

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 进阶 -- 部署微服务项目上线_spring_03

执行命令启动

docker-compose up

【云原生】Docker Compose 进阶 -- 部署微服务项目上线_redis_04

部署成功后我们查看服务是否启动

docker ps

【云原生】Docker Compose 进阶 -- 部署微服务项目上线_docker_05

本机进行访问

curl localhost:8080/hello

【云原生】Docker Compose 进阶 -- 部署微服务项目上线_java_06

⛵小结

以上就是【小王 Java】对 【云原生】Docker Compose 进阶 -- 部署微服务项目上线 的简单介绍 ,Compose 部署项目,实战练习,进阶!

如果这篇【文章】有帮助到你,希望可以给【小王 Java】点个赞

上一篇:java178-终篇?静态代理?动态代理?
下一篇:没有了
网友评论