簡體   English   中英

Docker Compose 無法在 Spring 啟動微服務中配置數據源

[英]Docker Compose Failed to configure a DataSource in Spring Boot Microservices

我在 Spring Boot Microservice 示例中的某些服務中定義數據庫時遇到問題。 當我通過此命令(docker-compose up -d)運行 docker-compose.yml 文件時,我在用戶服務廣告服務和最后報告服務中遇到了數據源問題。

所有這些服務都在config server的配置文件夾下自己的屬性文件中定義了自己的數據庫

這是docker-compose.yml數據庫部分

database:
    container_name: mysql-database
    image: 'mysql:latest'
    ports:
      - "3366:3306"
    restart: always
    environment:
      MYSQL_DATABASE: "springbootuser"
      MYSQL_USER: "springmicroserviceuser"
      MYSQL_PASSWORD: "111111"
      MYSQL_ROOT_PASSWORD: "111111"
    volumes:
      - db-data:/var/lib/mysql
    networks:
      backend:
        aliases:
          - "database"
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      timeout: 20s
      retries: 10

如何修復 docker-compose 文件中定義的所有服務中的數據源問題

這是我的docker-compose.yml鏈接

這是用戶服務屬性文件: 鏈接

這是廣告服務屬性文件: 鏈接

這是報告服務屬性文件: 鏈接

這是您的數據源連接端口localhost:3306的問題。 用戶3366而不是3306 當您在同一 docker 網絡上定義內部端口時,您需要使用database hostname而不是localhost 如果您使用 localhost 或 IP 那么您需要使用 docker 為從外部網絡路由的數據庫連接公開端口。

如果需要更新 docker 撰寫數據庫部分:

ports:
 - "3366:3306"
expose:
 - "3366"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM