Docker Compose部署微服務(wù)項(xiàng)目上線功能
一、需求說明
編寫一個(gè)SpringBoot + Redis 的微服務(wù)項(xiàng)目,并提供 hello接口,每訪問一次接口,計(jì)數(shù)器+1
二、效果圖

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

目錄說明
docker-compose.yml :項(xiàng)目的啟動(dòng)文件,配置編排等
Dockerfile:項(xiàng)目上線所需要的依賴,以及啟動(dòng)方式
四、核心源碼
??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"五、部署項(xiàng)目
打包后端項(xiàng)目通過命令
mvn clean package
jar包與配置文件上傳至Linux服務(wù)器,新建指定文件夾(通過Filezilla上傳文件)

執(zhí)行命令啟動(dòng)
docker-compose up

部署成功后我們查看服務(wù)是否啟動(dòng)
docker ps

本機(jī)進(jìn)行訪問
curl localhost:8080/hello

?小結(jié)
以上就是【Bug 終結(jié)者】對(duì) 【云原生】Docker Compose 進(jìn)階 – 部署微服務(wù)項(xiàng)目上線 的簡單介紹 ,Compose 部署項(xiàng)目,實(shí)戰(zhàn)練習(xí),進(jìn)階!
相關(guān)文章
Docker?部署分布式搜索引擎?Elastic?Search的詳細(xì)過程
Elasticsearch是一款非常強(qiáng)大的開源搜索引擎,具備非常多強(qiáng)大功能,可以幫助我們從海量數(shù)據(jù)中快速找到需要的內(nèi)容,這篇文章主要介紹了Docker?部署分布式搜索引擎?Elastic?Search,需要的朋友可以參考下2023-02-02
dockerfile中ENTRYPOINT與CMD的結(jié)合使用及區(qū)別
這篇文章主要介紹了dockerfile中ENTRYPOINT與CMD的結(jié)合使用,大家都知道CMD 與 ENTRYPOINT都是用于指定啟動(dòng)容器執(zhí)行的命令,那么他們倆有什么區(qū)別呢,本文給大家詳細(xì)介紹,需要的朋友可以參考下2021-08-08
Windows(Win11)如何安裝Docker(Docker Desktop)
這篇文章主要介紹了Windows(Win11)如何安裝Docker(Docker Desktop),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Docker執(zhí)行DockerFile構(gòu)建過程指令解析
這篇文章主要為大家介紹了Docker執(zhí)行DockerFile構(gòu)建過程及DockerFile的指令解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪<BR>2022-04-04

