django+mysql+docker
项目根目录生成requirements.txt文件
pip freeze > requirements.txt
项目根目录新建Dockerfile文件
#从仓库中拉取python3.6
FROM python3.6
#设置python的环境变量
ENV PYTHONUNBUFFERED 1
#执行shell命令
RUN apt-get update
RUN apt-get install python3-dev default-libmysqlclient-dev -y
#创建code文件夹并将其设置为工作目录
RUN mkdir /code
WORKDIR /code
#更新pip
RUN pip install pip -U
#将requirements.txt复制到容器的code目录
ADD requirements.txt /code/
#安装库
RUN pip install -r requirements.txt
#将当前目录复制到容器的code目录
ADD . ./code/
修改settings文件配置数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'servercms',
'USER': 'root',
'PASSWORD': '12345678',
'HOST': 'db',
'PORT': '3306',
'OPTIONS': {'charset': 'utf8mb4'}
}
}
构建项目镜像
docker build -t app:1.1 .
docker-compose.yml
- 新建docker-compose.yml文件
version: "3"
app:
restart: always
build: .
command: bash -c "python3 manage.py migrate && python3 manage.py runserver 0.0.0.0:8000"
volumes:
- .: /code
ports:
- "8000:8000"
depends_on:
- db
db:
image:mysql:5.7
restart: always
environment:
- MYSQL_ROOT_PASSWORD=12345678
- MYSQL_DATABASE=servercms
- MYSQL_USER=root
- MYSQL_PASSWORD=12345678
ports:
- "3306:3306"
volumes:
- "./mysql:/var/lib/mysql"
启动mysql和app
docker-compose up