Estoy usando MySQL con la API web .net5 en la ventana acoplable. La configuración de mi ventana acoplable es Window10 Home con WSL2.
Mi archivo Docker-compose y compose.override como se muestra a continuación
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"Cada vez que construyo o subo mi archivo docker-compose por primera vez (nuevo inicio o limpieza del volumen anterior y luego DC up). Luego arroja un error MySql connection error MySqlConnector.MySqlException (0x80004005): No se puede conectar a ninguno de los hosts MySQL especificados.
Luego tengo que detener manualmente y luego iniciar mi contenedor API. entonces la conexión funciona bien.
¿Estoy haciendo algo mal o hay alguna solución para este problema? ¿Por favor comparte?
Los documentos de redacción del expediente tienen algunas respuestas.
Cambie su aplicación para volver a intentar la conexión o use un script de contenedor que espere a que el puerto db esté listo
Estaba haciendo una migración de base de datos en el archivo program.cs. y el servidor MySQL comienza más lento que el servidor API .Net5.
Para resolver este problema Según la respuesta de @Rosco, tengo que volver a intentar mi migración para una excepción.
Para volver a intentar el ejemplo de migración: