Windows 10
Dockerfile:-
FROM python:3.8
ENV PYTHONUNBUFFERED 1
COPY ./requirements.txt /requirements.txt
RUN apt-get install default-libmysqlclient-dev
RUN pip install -r requirements.txt
RUN pip install mysqlclient
RUN mkdir /app
WORKDIR /app
COPY ./app /app
docker-compose.yml :-
version: "3"
services:
app:
build:
context: .
ports:
- "8000:8000"
volumes:
- ./app:/app
- /tmp/app/mysqld:/run/mysqld
command: >
sh -c "python manage.py wait_for_db &&
python manage.py migrate &&
python manage.py runserver 0.0.0.0:8002"
depends_on:
- db
links:
- db
db:
image: mysql:8
restart: always
ports:
- "3306:3306"
environment:
- MYSQL_DATABASE='music'
- MYSQL_USER='music'
- MYSQL_PASSWORD='music'
- MYSQL_ROOT_PASSWORD='rootmusic'
volumes:
- /tmp/app/mysqld:/var/run/mysqld
- ./db:/var/lib/mysql
requirements.txt :-
Django>=2.1.3,<2.2.0
djangorestframework>=3.9.0,<3.10.0
pymysql
mysqlclient==1.4.6
django-mysql==3.4.0
Django-settings.py :-
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': os.environ.get("MYSQL_DATABASE"),
'USER': os.environ.get("MYSQL_USER"),
'PASSWORD': os.environ.get("MYSQL_PASSWORD"),
'HOST': 'db',
'PORT': '3306',
}
}
使用命令 docker-compose up
时出现错误 django.db.utils.OperationalError: (2002, "Can't connect to MySQL server on 'db' (115)")
在 django 主机中使用 - '127.0.0.1' 也尝试使用 'localhost'。但同样的错误再次出现。
只是使用 Docker 来运行我的 django-mysql 应用程序。不确定是否涉及套接字以及如何。
自过去两天以来,我一直在寻找解决方案。请帮忙。