溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Docker?Compose如何部署微服務(wù)項目上線功能

發(fā)布時間:2022-07-06 10:40:06 來源:億速云 閱讀:268 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下Docker Compose如何部署微服務(wù)項目上線功能的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    一、需求說明

    編寫一個SpringBoot + Redis 的微服務(wù)項目,并提供 hello接口,每訪問一次接口,計數(shù)器+1

    二、效果圖

    Docker?Compose如何部署微服務(wù)項目上線功能

    三、項目結(jié)構(gòu)

    Docker?Compose如何部署微服務(wù)項目上線功能

    目錄說明

    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相關(guān)源碼

    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服務(wù)器,新建指定文件夾(通過Filezilla上傳文件)

    Docker?Compose如何部署微服務(wù)項目上線功能

    執(zhí)行命令啟動

    docker-compose up

    Docker?Compose如何部署微服務(wù)項目上線功能

    部署成功后我們查看服務(wù)是否啟動

    docker ps

    Docker?Compose如何部署微服務(wù)項目上線功能

    本機進行訪問

    curl localhost:8080/hello

    Docker?Compose如何部署微服務(wù)項目上線功能

    以上就是“Docker Compose如何部署微服務(wù)項目上線功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI