使用DockerCompose部署微服务项目(基于Springboot搭建一个简易计数器)
准备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搭建一个简易计数器)的更多相关文章
- 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现
庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介 在第七篇文章<庐山真面目之七微服务架构Consul ...
- Docker实战 | 第二篇:IDEA集成Docker插件实现一键自动打包部署微服务项目,一劳永逸的技术手段值得一试
一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...
- linux系统部署微服务项目
**:如果使用阿里云linux服务器 1.设置容器镜像服务 在阿里云平台搜索 "容器镜像服务" 选择"CentOS" 安装/升级Docker客户端 配置镜像加速 ...
- Docker部署微服务项目
测试包准备工作 1.spring.io或者ide创建demo工程 spring官网 2.本地demo代码,打包成jar包 使用Dockerfile构建微服务镜像 3.将jar包上传到你的vps lin ...
- 使用docker-compose运行微服务项目#eureka+config+auth+gateway+module
微服务架构中我们使用了必须的四个组件,eureka config gateway auth 其中config依赖eureka,auth依赖前两者,gateway又依赖auth 这样就确定了四个组件的启 ...
- docker-compose部署微服务
1.安装docker-compose curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose ...
- Docker 搭建 ELK 读取微服务项目的日志文件
思路: 在docker搭建elasticsearch与kibana来展示日志,在微服务部署的机子上部署logstash来收集日志传到elasticsearch中,通过kibana来展示,logstas ...
- SpringCloud(1)---基于RestTemplate微服务项目案例
基于RestTemplate微服务项目 在写SpringCloud搭建微服务之前,我想先搭建一个不通过springcloud只通过SpringBoot和Mybatis进行模块之间额通讯.然后在此基础上 ...
- 十一、Docker搭建部署SpringCloud微服务项目Demo
环境介绍 技术选型:SpringCloud&SpringCloud Alibaba&Docker 微服务模块划分: 员工模块:ems-employees 部门模块:ems-depart ...
- Blazor+Dapr+K8s微服务之基于WSL安装K8s集群并部署微服务
前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for deskto ...
随机推荐
- Linux下添加启动项并简化操作命令-nginx为例
1.添加nginx为启动项 1. vi /etc/rc.d/rc.local 2.将启动命令直接添加到最后即可 *注:通过下图可知 /etc/rc.d/rc.local和 ...
- Visio中的图无失真导入LaTeX中
参考网址: LaTeX导入图片不失帧的方法_奋斗的西瓜瓜的博客-CSDN博客_latex图片模糊 LaTeX中插入eps格式图片_不觉岁华成暗度的博客-CSDN博客_eps latex Visio图片 ...
- nxp imx8m与imx6 使用VPU时,申请CMA的区别
imx8mp是什么时候申请CM的: imx8mp是我自己看的,imx6不一定保熟. imx8mp: imx6:
- Vue2+Cesium1.9+热力图开发笔记
1.安装cesiumJS.heatmap.webpack插件依赖包: yarn install/npm install "dependencies": { ... "ce ...
- 02 流程控制之while循环
# 1.循环的语法与基本使用'''print(1)while 条件: 代码1 代码2 代码3print(3)''' # count=0# while count < 5: # 5 < 5# ...
- [CSP-S2019] Emiya 家今天的饭
洛咕 题意:原题面见链接,简单来说就是给出一个\(n*m\)的矩阵,每一行代表同一种烹饪方法,每一列代表同一种食材,\(a_{i,j}\)表示使用第i种烹饪方法第j种食材能做出多少种菜,要求至少做一道 ...
- Jmeter性能测试入门到项目实战03
Jmeter性能测试入门到项目实战03 P35 项目业务介绍 1,之前已经对Jmeter所有的知识点做了一个介绍,主要的业务模式是币币交易,就像b2c 2, 3, 4,主要是把登陆和交易这一块做一个并 ...
- Drozer实践之sieve
在模拟器中打开drozer agent 启动连接drozer adb connect 127.0.0.1:xxxxx //adb连接设备,只有模拟器才需要这一步,不同模拟器端口不同 adb forwa ...
- 集成GIT仓库
集成GIT仓库 jgit - java实现git操作 一个 Java 程序中使用 Git ,有一个功能齐全的 Git 库,那就是 JGit . JGit 是一个用 Java 写成的功能相对健全的 Gi ...
- IDEA debug时拷贝数据 Evaluate Expression窗口
今日份鸡汤:别人再好,也是别人.自己再不堪,也是自己,独一无二的自己.只要努力去做最好的自己,一生足矣.为自己的人生负责,为自己的梦想买单. 用IDEA调试时候经常需要拷贝变量值出来排查,特别是数据结 ...