首页 > 解决方案 > docker compose for asp.net core 和 mysql

问题描述

我正在尝试为 asp.net core 和 mysql 设置 docker compose。

对于 docker-compose.yml

version: '3.5'
services:
    xx-server:
        container_name: 'xx-server'
        image: 'mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim'
        restart: always
        working_dir: '/app'
        ports: 
            - "8888:80"
            - "8887:443"
        volumes: 
            - 'C:\Users\xx\netcoreapp3.1:/app'
        entrypoint: 
            ["dotnet", "xx.Web.Host.dll"]
        environment: 
            - "ASPNETCORE_URLS=https://+;http://+"
        depends_on: 
            - db
    db:
        container_name: 'db'
        image: 'mysql'
        restart: always
        environment: 
            MYSQL_DATABASE: 'mydbname'
            MYSQL_ROOT_PASSWORD: 'mydbpd'
            MYSQL_USER: 'mydbuser'
            MYSQL_PASSWORD: 'mydbpd'
        ports: 
          - "8885:3306"
        volumes: 
           - 'C:\Users\xx\mysql1:/var/lib/mysql'

而且,我在下面使用了连接字符串appsettings.json

  "ConnectionStrings": {
    "Default": "server=db;port=8885;userid=mydbuser;pwd=mydbpd;database=mydbname"
  },

但是,它总是抛出错误

An exception has been raised that is likely due to a transient failure. 
Consider enabling transient error resiliency by adding 'EnableRetryOnFailure()' to the 'UseMySql' call.

运行后docker-compose up,我可以从 mysql studio 连接我的数据库。

但是,asp.net核心容器总是无法连接mysql db。

标签: mysqldockerasp.net-coreasp.net-core-3.1

解决方案


推荐阅读