• Linux
  • apache
  • centos
  • Git版本管理
  • Linux基本命令
  • linux配置与优化
  • Nginx
  • PHP
  • Redis
  • Supervisor
  • Swoole
  • windows
  • THINKPHP
  • 开发者手册
  • Chat GPT / Open Ai
  • Docker Compose部署微服务项目上线功能

    全屏阅读
  • 基本信息
  • 作者:
  • 作者已发布:925篇文章
  • 发布时间:2022年11月01日 0:03:50
  • 所属分类:Docker, Java, SpringBoot
  • 阅读次数:383次阅读
  • 标签:
  • 目录

  • 五、部署项目

  • ⛵小结

  • 一、需求说明

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

    二、效果图

    在这里插入图片描述

    三、项目结构

    image.png

    目录说明

    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上传文件)

    image.png

    执行命令启动

    docker-compose up

    image.png

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

    docker ps

    image.png

    本机进行访问

    curl localhost:8080/hello

    image.png

    顶一下
    (0)
    100%
    订阅 回复
    踩一下
    (0)
    100%
    » 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。
  • 【上一篇】
  • 【下一篇】
  • 目前有 0 条留言 其中:访客:0 条, 博主:0 条

    给我留言

    您必须 [ 登录 ] 才能发表留言!