使用DockerCompose部署微服务项目(基于Springboot搭建一个简易计数器)

2023-03-12,,

准备Dockerfile

FROM java:8 #基于jdk8的环境

COPY *.jar /app.jar #拷贝所有的jar包到/app.jar目录下

CMD ["--server.port=8080"] # 指定服务器端口

EXPOSE 8080 # 暴露8080端口

ENTRYPOINT ["java", "-jar", "/app.jar"] # 启动jar包

准备docker-compose.yml

version: '2.6' # 指定版本,这个版本是docker和docker-compose对应的版本
services:
customapp:
build: . # 构建当前目录下的项目
image: customapp # 镜像
ports:
- "8080:8080" # 端口
depends_on:
- redis # 依赖redis镜像
redis:
image: 'redis:alpine' # redis镜像,精简版

然后搭建基于Springboot的微服

pom.xml文件如下

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

其中pom.xml文件中只引用了较少的依赖,包括redis和starter-web。用于搭建springboot项目

application.properties其中内容

server.port=8080 # 暴露端口
# 为何这里指定redis的服务器时,使用的是“redis”,而不是类似于“localhost”那种服务器的信息。
# 是因为部署在docker容器里面时,直接是引用的redis镜像。
spring.redis.host=redis # 指定redis的服务器

一个简单的计数访问页面controller

package com.example.composedemo.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; import javax.annotation.Resource; /**
* @Author: Xiong Feng
* @Date: 2020/8/4 8:53
* @Description:
*/
@RestController
public class HelloController { @Resource
private StringRedisTemplate stringRedisTemplate; @GetMapping("/hello")
public String Hello(){
Long views = stringRedisTemplate.opsForValue().increment("views");
return "Hello Docker Compose, you have views:"+views;
}
}

这个Controller里面就简单引用了redis,并使用redis的缓存实现计数+1

上面准备步骤做好之后,把springboot项目打包成一个jar包,将Dockerfile文件和docker-compose.yml文件,一起放入linux环境下的同一个目录

然后再控制台执行命令

docker-compose up --build

出现如图结果,说明你的简单计数微服务已经成功部署在Docker上了。

每次访问页面,计数器就会+1

使用DockerCompose部署微服务项目(基于Springboot搭建一个简易计数器)的相关教程结束。

《使用DockerCompose部署微服务项目(基于Springboot搭建一个简易计数器).doc》

下载本文的Word格式文档,以方便收藏与打印。