Docker Compose部署微服务项目上线功能

 更新时间:2022年07月05日 11:19:51   作者:Bug 终结者  
这篇文章主要介绍了Docker Compose部署微服务项目上线,需求是这样的编写一个SpringBoot + Redis 的微服务项目,并提供 hello接口,每访问一次接口,计数器+1,本文给大家分享实现思路,需要的朋友可以参考下

一、需求说明

编写一个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 部署项目,实战练习,进阶!

相关文章

  • 卸载Docker时保留本地镜像和容器方式

    卸载Docker时保留本地镜像和容器方式

    文章讲述了如何在Linux、Windows和Mac系统中备份和恢复Docker镜像和容器,备份过程包括列出本地镜像、保存镜像和导出容器,恢复过程则涉及卸载Docker、重新安装Docker以及使用dockerload和dockerimport命令恢复镜像和容器
    2024-11-11
  • Docker 部署分布式搜索引擎 Elastic Search的详细过程

    Docker 部署分布式搜索引擎 Elastic Search的详细过程

    Elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容,这篇文章主要介绍了Docker 部署分布式搜索引擎 Elastic Search,需要的朋友可以参考下
    2023-02-02
  • Docker如何批量删除images

    Docker如何批量删除images

    这篇文章主要介绍了Docker如何批量删除images问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • docker搭建minio的问题解决

    docker搭建minio的问题解决

    本文主要介绍了docker搭建minio的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • dockerfile中ENTRYPOINT与CMD的结合使用及区别

    dockerfile中ENTRYPOINT与CMD的结合使用及区别

    这篇文章主要介绍了dockerfile中ENTRYPOINT与CMD的结合使用,大家都知道CMD 与 ENTRYPOINT都是用于指定启动容器执行的命令,那么他们俩有什么区别呢,本文给大家详细介绍,需要的朋友可以参考下
    2021-08-08
  • docker 搭建svn服务器的教程

    docker 搭建svn服务器的教程

    这篇文章主要介绍了docker 搭建svn服务器的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Nginx docker容器版部署访问403的解决

    Nginx docker容器版部署访问403的解决

    本文主要介绍了Nginx docker容器版部署访问403的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • Windows(Win11)如何安装Docker(Docker Desktop)

    Windows(Win11)如何安装Docker(Docker Desktop)

    这篇文章主要介绍了Windows(Win11)如何安装Docker(Docker Desktop),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Docker执行DockerFile构建过程指令解析

    Docker执行DockerFile构建过程指令解析

    这篇文章主要为大家介绍了Docker执行DockerFile构建过程及DockerFile的指令解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪<BR>
    2022-04-04
  • docker搭建memcached的详细步骤

    docker搭建memcached的详细步骤

    Memcached 是一个通用的分布式内存缓存系统,它通常用于通过在 RAM 中缓存数据和对象来加速动态数据库驱动的网站,以减少必须读取外部数据源(例如数据库或 API)的次数,这篇文章主要介绍了docker搭建memcache,需要的朋友可以参考下
    2022-07-07

最新评论