ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

docker-compose之.netcore+mysql+Ocelot多容器部署

2022-05-23 23:31:07  阅读:203  来源: 互联网

标签:compose name netcore dev ports environment Ocelot 80 networks


继上节.NetCoreApi容器与MySql容器互联继续讲解,主要增加了Ocelot网关。

 

项目结构

 

 

编写 docker-compose.yml 文件

 

version: '3'
services:
  db:
    image: mysql:5.5  
    command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci  
    container_name: db  
    restart: always
    ports:
      - "3306:3306"
    environment:
      - MYSQL_PASSWORD=123456
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_USER=yak
    networks: 
      - dev
    volumes:  
      - "./db:/var/lib/mysql"
      - "./conf/my.cnf:/etc/my.cnf"
      - "./init:/docker-entrypoint-initdb.d/"
  gateway:
    container_name: gateway
    build:
      context: ./OcelotGateway
      dockerfile: Dockerfile
    ports:
      - 80:80
    environment:
      TZ: "Asia/Shanghai"
      ASPNETCORE_ENVIRONMENT: "Production"
    links:
      - a
      - b
      - c
      - d
    networks: 
      - dev
  a:
    container_name: businessa
    hostname: Business_A
    build:
      context: ./BusinessProjectA
      dockerfile: Dockerfile
    ports:
      - 81:80
    environment:
      TZ: "Asia/Shanghai"
      ASPNETCORE_ENVIRONMENT: "Production"
    networks: 
      - dev
  b:
    container_name: businessb
    hostname: Business_B
    build:
      context: ./BusinessProjectA
      dockerfile: Dockerfile
    ports:
      - 82:80
    environment:
      TZ: "Asia/Shanghai"
      ASPNETCORE_ENVIRONMENT: "Production"
    networks: 
      - dev
  c:
    container_name: businessc
    hostname: Business_C
    build:
      context: ./BusinessProjectA
      dockerfile: Dockerfile
    ports:
      - 83:80
    environment:
      TZ: "Asia/Shanghai"
      ASPNETCORE_ENVIRONMENT: "Production"
    networks: 
      - dev
      - pro
  d:
    container_name: businessd
    hostname: Business_D
    build:
      context: ./Yak.Docker.Test
      dockerfile: Dockerfile
    ports:
      - 84:80
    environment:
      TZ: "Asia/Shanghai"
      ASPNETCORE_ENVIRONMENT: "Production"
    networks: 
      - dev
      - pro
  e:
    container_name: businesse
    hostname: Business_E
    build:
      context: ./Yak.DockerCompose.Api
      dockerfile: Dockerfile
    ports:
      - 85:80
    environment:
      TZ: "Asia/Shanghai"
      ASPNETCORE_ENVIRONMENT: "Production"
    networks: 
      - dev
      - pro
    depends_on:
      - db
networks:
  dev:
    driver: bridge
  pro:
    driver: bridge

  

编写 ocelot.json 文件

{
  "Routes": [
    {
      "UpstreamPathTemplate": "/business/{url}",
      "UpstreamHttpMethod": [ "Get", "Post", "Put", "Delete", "Patch", "Options", "Head", "Trace", "Connect", "Purge", "None" ],
      "DownstreamPathTemplate": "/{url}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Port": "80",
          "Host": "businessa"
        },
        {
          "Port": "80",
          "Host": "businessb"
        },
        {
          "Port": "80",
          "Host": "businessc"
        }
      ],
      "LoadBalancerOptions": {
        "Type": "LeastConnection",
        "Exact": true
      }
    },
    {
      "UpstreamPathTemplate": "/weather/{url}",
      "UpstreamHttpMethod": [ "Get", "Post", "Put", "Delete", "Patch", "Options", "Head", "Trace", "Connect", "Purge", "None" ],
      "DownstreamPathTemplate": "/{url}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Port": "80",
          "Host": "businessd"
        }
      ],
      "LoadBalancerOptions": {
        "Type": "LeastConnection",
        "Exact": true
      }
    },
    {
      "UpstreamPathTemplate": "/user/{url}",
      "UpstreamHttpMethod": [ "Get", "Post", "Put", "Delete", "Patch", "Options", "Head", "Trace", "Connect", "Purge", "None" ],
      "DownstreamPathTemplate": "/{url}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Port": "80",
          "Host": "businesse"
        }
      ],
      "LoadBalancerOptions": {
        "Type": "LeastConnection",
        "Exact": true
      }
    }
  ],
  "DynamicReRoutes": [],
  "Aggregates": [],
  "GlobalConfiguration": {
    "BaseUrl": "http://localhost"
  }
}

 

代码拷贝到Linux系统中

 

 

启动 docker-compose
docker-compose up -d --build

  

 

 

 

查看

 

docker-compose ps

  

 

 

 

访问 http://192.168.192.138/user/User/Get

 

 

 

 

标签:compose,name,netcore,dev,ports,environment,Ocelot,80,networks
来源: https://www.cnblogs.com/yakniu/p/16303873.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有