最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker部署SpringCloud微服務(wù)項(xiàng)目方式

 更新時(shí)間:2024年07月12日 14:44:00   作者:做一個(gè)體面人  
這篇文章主要介紹了docker部署SpringCloud微服務(wù)項(xiàng)目方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

我們寫(xiě)好的項(xiàng)目,都需要部署上線,今天就給大家介紹一下,如何將微服務(wù)項(xiàng)目部署上線,一般我們部署項(xiàng)目都是先在本地docker部署一遍,如果沒(méi)有問(wèn)題再部署到服務(wù)器,那么今天我就按照這個(gè)順序來(lái)說(shuō)

前置條件

微服務(wù)項(xiàng)目的pom文件需要這樣添加打包插件

  • 在父pom文件中添加如下依賴:
<build>
     <plugins>
         <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
             <version>3.0.2</version>
         </plugin>
     </plugins>
 </build>
  • 在子pom文件添加如下依賴:
<build>
     <plugins>
         <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
             <executions>
                 <execution>
                     <id>repackage</id>
                     <goals>
                         <goal>repackage</goal>
                     </goals>
                 </execution>
             </executions>
             <version>3.0.2</version>
         </plugin>
     </plugins>
 </build>

repackage命令構(gòu)建子模塊時(shí)候,會(huì)自動(dòng)將公共模塊的依賴打入jar包。

說(shuō)明:這個(gè)子pom文件不是所有的子pom,而是你需要啟動(dòng)的SpirngBoot的服務(wù)的子模塊,如下圖所示

本地部署

1、先執(zhí)行mvn package命令,對(duì)項(xiàng)目進(jìn)行打包或者按照下圖所示進(jìn)行打包

2、為每個(gè)子服務(wù)編寫(xiě)Dockerfile文件,此處以yz-service-order服務(wù)來(lái)說(shuō)明,其余服務(wù)都類似

# Dockerfile文件
# 基礎(chǔ)鏡像
FROM openjdk:17

# 設(shè)置 LANG 環(huán)境變量為 zh_CN.UTF-8
ENV LANG zh_CN.UTF-8

# 指定工作目錄
WORKDIR /app

# 將 jar 包添加到工作目錄,
ADD target/yz-service-order-0.0.1-SNAPSHOT.jar .

# 暴露端口,網(wǎng)關(guān)端口
EXPOSE 7200

# 啟動(dòng)命令
ENTRYPOINT ["java", "-Dfile.encoding=UTF-8", "-jar", "/app/yz-service-order-0.0.1-SNAPSHOT.jar", "--spring.profiles.active=prod"]

注意:拉去jdk鏡像的時(shí)候要拉取匹配自己操作系統(tǒng)的,我之前寫(xiě)的是

FROM openjdk:17-jdk-alpine // 這個(gè)是在windows系統(tǒng)里面寫(xiě)的,現(xiàn)在環(huán)境是在mac下進(jìn)行的,不知道直接在windows系統(tǒng)里面寫(xiě)FROM openjdk:17會(huì)不會(huì)報(bào)錯(cuò),沒(méi)有測(cè)試

所以報(bào)下面的錯(cuò)誤

3、在本地啟動(dòng)Docker容器,然后直接點(diǎn)擊這個(gè)按鈕就可以創(chuàng)建鏡像,并啟動(dòng)服務(wù)啦,這一步主要是檢驗(yàn)鏡像能否創(chuàng)建成功和order服務(wù)能否啟動(dòng)成功。

4、編寫(xiě)mysql文件yz-bi.sql,docker創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候,初始化數(shù)據(jù)庫(kù)

5、創(chuàng)建docker-compose-env.yml文件,編寫(xiě)mysql、rabbitmq、redis、nacos鏡像內(nèi)容

version: '3'
services:
  mysql:
    image: mysql:8.1
    container_name: mysql
    volumes:
      # 將遠(yuǎn)程數(shù)據(jù)映射到本地目錄/mysql/data
      - ./mysql/data:/var/lib/mysql
      # 初始化文件
      - ./mysql:/docker-entrypoint-initdb.d
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    ports:
      - "3306:3306"
    restart: always
    networks:
      - mynetwork

  redis:
    image: redis:6
    container_name: redis
    volumes:
      - ./redis/data:/data
    ports:
      - "6379:6379"
    environment:
      REQUIREPASS: 123456
    restart: always
    networks:
      - mynetwork


  rabbitmq:
    image: rabbitmq:3.12.6-management
    container_name: rabbitmq
    ports:
      - "5672:5672"
      - "15672:15672"
    volumes:
      # 將遠(yuǎn)程數(shù)據(jù)映射到本地目錄/rabbit/data
      - ./rabbitmq/data:/var/lib/rabbitmq
    environment:
      - RABBITMQ_DEFAULT_USER=admin
      - RABBITMQ_DEFAULT_PASS=admin
    restart: always
    networks:
      - mynetwork

  nacos:
    image: nacos/nacos-server:v2.2.0-slim
    container_name: nacos
    volumes:
      # 將遠(yuǎn)程數(shù)據(jù)映射到本地/nacos/data目錄
      - ./nacos/data:/home/nacos/data
    ports:
      - "8848:8848"
    environment:
      - MODE=standalone
      - PREFER_HOSTNAME=hostname
      - TZ=Asia/Shanghai
    restart: always
    networks:
      - mynetwork
networks:
  mynetwork:

編寫(xiě)完直接運(yùn)行即可,運(yùn)行結(jié)果如下:

6、創(chuàng)建docker-compose-server.yml文件,編寫(xiě)業(yè)務(wù)服務(wù)鏡像內(nèi)容

version: '3'
services:
  yz-service-api-gateway:
    container_name: yz-service-api-gateway
    build:
      context: ./yz-service-api-gateway
      dockerfile: Dockerfile
    networks:
      - mynetwork
    ports:
      - "7200:7200"

  yz-service-user:
    container_name: yz-service-user
    build:
      context: ./yz-service-user
      dockerfile: Dockerfile
    networks:
      - mynetwork
    ports:
      - "7300:7300"
    depends_on:
      - yz-service-api-gateway

  yz-service-pay:
    container_name: yz-service-pay
    build:
      context: ./yz-service-pay
      dockerfile: Dockerfile
    networks:
      - mynetwork
    ports:
      - "7400:7400"
    depends_on:
      - yz-service-api-gateway

  yz-service-promotion:
    container_name: yz-service-promotion
    build:
      context: ./yz-service-promotion
      dockerfile: Dockerfile
    networks:
      - mynetwork
    ports:
      - "7500:7500"
    depends_on:
      - yz-service-api-gateway

  yz-service-order:
    container_name: yz-service-order
    build:
      context: ./yz-service-order
      dockerfile: Dockerfile
    ports:
      - "7600:7600"
    networks:
      - mynetwork
    depends_on:
      - yz-service-pay
      - yz-service-promotion
      - yz-service-api-gateway


  yz-service-bi:
    container_name: yz-service-bi
    build:
      context: ./yz-service-bi
      dockerfile: Dockerfile
    ports:
      - "7700:7700"
    networks:
      - mynetwork
    depends_on:
      - yz-service-user
      - yz-service-api-gateway

# 網(wǎng)絡(luò),不定義的話就是默認(rèn)網(wǎng)絡(luò)
networks:
  mynetwork:

7、修改配置文件

因?yàn)槲业膍ysql、rabbitmq、redis的配置信息寫(xiě)在nacos中,所以,在瀏覽器打開(kāi)剛才部署的nacos控制面板,創(chuàng)建配置文件,

文件內(nèi)容如下:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    # 這塊的url換成容器名稱mysql
    url: jdbc:mysql://mysql:3306/yz?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true
    username: "root"
    password: "123456"

  rabbitmq:
  	# 換成容器名稱rabbitmq
    host: rabbitmq
    port: 5672
    username: admin
    password: admin

yz:
  redis:
    host: redis
    port: 6379
    password: 123456
    timeout: 3000

簡(jiǎn)單來(lái)說(shuō),就是把你配置文件中所有的host換成對(duì)應(yīng)的容器名稱即可

8、運(yùn)行docker-compose-service.yml文件即可。

最后查看docker容器面板,所有服務(wù)都啟動(dòng)成功。

本項(xiàng)目集成了knife,通過(guò)localhost:端口號(hào)/doc.html就可以訪問(wèn),訪問(wèn)結(jié)果如下:

這樣微服務(wù)項(xiàng)目在本地就部署成功

部署到服務(wù)器

服務(wù)器部署和本地部署類似,只要本地部署成功了,把項(xiàng)目方到服務(wù)器就是執(zhí)行.yml文件。

環(huán)境準(zhǔn)備

1、服務(wù)器安裝maven

2、服務(wù)器安裝Docker、Docker Compose

開(kāi)始

1、將項(xiàng)目拷貝到服務(wù)器,比如說(shuō)拷貝到/usr/local/java/yz目錄下

2、cd /usr/local/java/yz

3、執(zhí)行mvn package

4、執(zhí)行命令

# 先部署mysql、rabbitmq、nacos和redis
docker compose -f docker-compose-env.yml up 
# 再部署服務(wù)命令
docker compose -f docker-compose-service.yml up

這樣基本就部署成功了!

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

历史| 新民市| 通州区| 苏州市| 惠州市| 昌黎县| 黔南| 民权县| 琼海市| 长岭县| 清水河县| 长乐市| 江源县| 南部县| 北票市| 南澳县| 汉寿县| 裕民县| 静安区| 应用必备| 泸定县| 信宜市| 湟中县| 清流县| 寿阳县| 柏乡县| 上饶市| 高清| 文安县| 镇巴县| 孟津县| 乐安县| 宿迁市| 大田县| 亚东县| 浏阳市| 安达市| 阿巴嘎旗| 龙口市| 元阳县| 莲花县|