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

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

目录

  • 五、部署项目

    • ⛵小结

      • 一、需求说明

        编写一个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 条

        给我留言

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