我已经在我的Mac M1中用MySQL在docker compose中设置了Django.每次我做Dackker-Compose时,我都会收到Django应用程序的错误
"Error: File "/usr/local/lib/python3.6/site-packages/MySQLdb/connections.py", line 166, in __init__
web_1 | super(Connection, self).__init__(*args, **kwargs2)
web_1 | django.db.utils.OperationalError: (2002, "Can't connect to MySQL server on 'db' (115)")
我有另一台机器(Ubuntu),在那里有相同的坞站配置,我没有得到任何问题.
version: '3.2'
services:
web:
restart: always
expose:
- "5000"
build:
context: .
dockerfile: Dockerfile
command: python manage.py runserver 0.0.0.0:5000
ports:
- "9000:5000"
environment:
- MYSQL_HOST=db
- MYSQL_USER=me
- MYSQL_PASSWORD=me
- MYSQL_DB=my_db
depends_on:
- db
volumes:
- ".:/code/google"
db:
image: mysql:5.7
restart: always
expose:
- "9306"
ports:
- "9306:3306"
environment:
- MYSQL_DATABASE=my_db
- MYSQL_USER=me
- MYSQL_PASSWORD=me
- MYSQL_ROOT_PASSWORD=me
volumes:
- "./db_data:/opt/homebrew/var/mysql"
- "./mysql-init:/docker-entrypoint-initdb.d"
这是我的Django设置
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "my_db",
"USER": "me",
"PASSWORD": "me",
"HOST": "db",
"PORT": "3306",
}
}
我试过很多东西,现在大部分都不记得了.也就是说,我try 交换服务,只保留数据库服务似乎没有网络的工作,try 更改卷位置,删除所有映像,容器和卷,并重建.
如果这能在ubuntu one机器上运行,难道它不应该也能在Mac M1上运行吗?这不就是 docker 的保证吗?