-
创建Django项目的Dockerfile,写入以下内容:
FROM python:3.7 ENV PYTHONUNBUFFERED 1 # 添加 Debian 清华镜像源 RUN echo \ deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free\ deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free\ deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free\ deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free\ > /etc/apt/sources.list RUN apt-get update RUN apt-get install python3-dev default-libmysqlclient-dev -y RUN mkdir /code WORKDIR /code # 添加 pip 清华镜像源 RUN pip install pip -U -i https://pypi.tuna.tsinghua.edu.cn/simple ADD requirements.txt /code/ # 添加 pip 清华镜像源 RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ADD . /code/
-
创建docker-compose.yaml文件,写入以下内容:
version: "3" services: app: restart: always build: . command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000" volumes: - .:/code ports: - "8001:8000" depends_on: - db db: image: mysql:5.7 volumes: - ./mysql:/var/lib/mysql ports: - "3306:3306" restart: always environment: - MYSQL_ROOT_PASSWORD=mypassword - MYSQL_DATABASE=django_app
-
修改Django中连接MySQL数据库的配置文件
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_app', 'USER': 'root', # MySQL的用户名,默认为root 'PASSWORD': 'mypassword', # MySQL的密码,docker-compose文件中指定 'HOST': 'db', # MySQL的主机名,docker-compose文件中指定 'PORT': '3306', # 端口,docker-compose文件中指定 'OPTIONS': { 'charset': 'utf8mb4' }, } }
-
启动docker-compose
-
测试MySQL是否成功连接
首先新建一个app,定义一个model
编写一个视图函数,从表中增加数据和获取数据:
浏览器中访问http://localhost:8001
即可看到以下结果:
至此,docker-compose整合Django和MySQL的基本操作和思路就完成了,如果之后有需要详尽的地方,欢迎大家指出,我看到后会更新以下这篇文章!!
本环境的示例代码下载地址:https://download.csdn.net/download/weixin_40409015/12533094