【问题标题】:docker-compose first-time up and Build, MySql server start slower than .net5 APIdocker-compose 首次启动并构建,MySql 服务器启动速度比 .net5 API 慢
【发布时间】:2021-06-09 13:42:20
【问题描述】:

我在 docker 中使用 MySQL 和 .net5 Web API。 我的 docker 配置是带有 WSL2 的 Window10 Home。

我的 Docker-compose 和 compose.override 文件如下所示

docker-compose.yml

version: '3.4'

services:
  userdb:
    image: mysql

  portainer:
    image: portainer/portainer-ce

  usermanagement.api:
    image: ${DOCKER_REGISTRY-}usermanagementapi
    build:
      context: .
      dockerfile: Services/User/User.API/Dockerfile

volumes:
  mysql_data:
  portainer_data:

docker-compose.override.yml

version: '3.4'

services:
  userdb:
    container_name: userdb
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=user
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

  portainer:
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

  usermanagement.api:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - "ConnectionStrings:DefaultConnection=server=userdb;port=3306;database=user;userid=root;pwd=root;"
    depends_on:
      - userdb
    ports:
      - "8001:80"

每当我第一次构建或构建我的 docker-compose 文件时(重新启动或清理旧卷然后 D-C 启动)。然后它抛出错误MySql连接错误 MySqlConnector.MySqlException (0x80004005):无法连接到任何指定的 MySQL 主机。

然后我必须手动停止然后启动我的 API 容器。然后连接工作正常。

我是不是做错了什么或者有什么解决方案请分享?

【问题讨论】:

    标签: mysql docker .net-core docker-compose .net-5


    【解决方案1】:

    案卷撰写文档有一些答案。

    要么更改您的应用程序以重试连接,要么使用等待数据库端口准备好的包装脚本

    https://docs.docker.com/compose/startup-order/

    【讨论】:

      【解决方案2】:

      我正在 program.cs 文件中进行数据库迁移。并且 MySQL 服务器的启动速度比 .Net5 API 服务器慢。

      要解决此问题,根据 @Rosco 的回答,我必须重试迁移以发现异常。

      重试迁移示例:

      https://github.com/aspnetrun/run-aspnetcore-microservices/blob/master/src/Services/Ordering/Ordering.API/Extensions/HostExtensions.cs

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-05
        • 1970-01-01
        • 2020-06-30
        • 2018-03-29
        • 2022-01-23
        • 1970-01-01
        • 2018-12-16
        • 1970-01-01
        相关资源
        最近更新 更多