【发布时间】: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