#mysql #docker #asp.net-core #asp.net-core-3.1
#mysql #docker #asp.net-ядро #asp.net-core-3.1
Вопрос:
Я пытаюсь настроить docker compose для asp.net ядро и mysql.
Для 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:Usersxxnetcoreapp3.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:Usersxxmysql1:/var/lib/mysql'
И я использовал connectionstring ниже в 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.
Комментарии:
1. Поскольку ваш asp.net контейнер должен получить доступ к контейнеру mysql из сети docker, сопоставление портов бессмысленно для asp.net контейнер. Помогает ли изменение значения порта в строке подключения
port=3306
решить вашу проблему?2. @octagon_octopus вы спасли мой день, большое спасибо. Он должен идти без сопоставления портов.