Docker Compose部署微服務項目上線功能
一、需求說明
編寫一個SpringBoot + Redis 的微服務項目,并提供 hello接口,每訪問一次接口,計數(shù)器+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上傳文件)

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

部署成功后我們查看服務是否啟動
docker ps

本機進行訪問
curl localhost:8080/hello

?小結
以上就是【Bug 終結者】對 【云原生】Docker Compose 進階 – 部署微服務項目上線 的簡單介紹 ,Compose 部署項目,實戰(zhàn)練習,進階!
相關文章
Docker+Nginx打包部署前后端分離步驟實現(xiàn)
這篇文章主要介紹了Docker+Nginx打包部署前后端分離步驟實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2023-01-01
Docker容器之間數(shù)據(jù)傳輸?shù)膶崿F(xiàn)
本文主要介紹了Docker容器之間數(shù)據(jù)傳輸?shù)膶崿F(xiàn),文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
寶塔創(chuàng)建Docker容器配置nginx的實現(xiàn)步驟
本文主要介紹了寶塔創(chuàng)建Docker容器配置nginx的實現(xiàn)步驟,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-06-06
Docker安裝配置Oracle詳細步驟記錄(以作持久化處理)
docker是一個用Go語言實現(xiàn)的開源項目,可以讓我們方便的創(chuàng)建和使用容器,下面這篇文章主要給大家介紹了關于Docker安裝配置Oracle詳細步驟的相關資料,需要的朋友可以參考下2024-03-03

