ドッカーどのようSpringboot動的質量参加プロジェクトに

背景

最近、何人かの友人は、ドッカー初心者を尋ねたいdocker-compose.yml動的マイクロサービスではなく、プロジェクトの設定ファイルにハードコードされたたびにパラメータを渡すために、その後、サービスのミラーを構築し、そして最後に設定を更新するためにパッケージ化され、一連の工程を経てリリースされ、それができます直接ではなくによってdocker-compose.yml、環境変数に設定項目の数、そしてspringbootプロジェクト環境変数から自動的に取得?


シーン

、今Springbootプロジェクトがあること、それは、構成アイテムのデータベースが含まれていますが、別のデータベースのテスト環境(DEV \ SIT \ UAT)とし、複数のデータベースのIP、同じ画像Springbootプロジェクトを使用する場合は、必ず構成データベースを切り替えることができます単にデータベースアプリケーションがSpringbootは、外部ではなく、決め打ちを通過しなければならない設定です。

次のようにデータベース構成があるSpringbootアプリケーションは次のとおりです。

spring.datasource.url = jdbc:mysql://192.168.0.11:3306/db?useUnicode=true&characterEncoding=utf8
#配置数据库用户名
spring.datasource.username = sa
#配置数据库密码
spring.datasource.password = sa

ソリューション

使用SpELの表現、環境変数からデータベースの構成を動的にアクセス
次に、我々はSpringbootがSPEL表現に置き換えデータベース構成で、プロファイル情報

#配置数据库链接
spring.datasource.url = jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME}?useUnicode=true&characterEncoding=utf8
#配置数据库用户名
spring.datasource.username = ${DB_USER}
#配置数据库密码
spring.datasource.password = ${DB_PASSWORD}

ではdocker-compose.yml、当社のデータベースパラメータの設定

version: '3'
services:
  web:
    restart: always
    depends_on:
      - db
    image: springboot-app-image
    build: .
    ports:
      - 8080:8080
    environment:
      - DB_HOST=192.168.0.11
      - DB_PORT=3306
      - DB_USER=root
      - DB_PASSWORD=123456
      - DB_NAME=db
    networks:
      - credit-facility-net
    deploy:
      mode: replicated
      replicas: 3
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 3
      update_config:
        parallelism: 1
        delay: 10s

だから、私たちのSpringbootアプリケーションが動的に起動時間コンテナサービスでデータベース構成を取得できること

121元記事公開 ウォンの賞賛330 ビューに40万+を

おすすめ

転載: blog.csdn.net/Evan_Leung/article/details/104843815