1.首先安装docker以及docker-compose的环境
curl -fsSL https://get.docker.com | bash
curl -L "https://github.com/docker/compose/releases/download/1.26.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod a+x /usr/local/bin/docker-compose
2.在项目目录使用pip导出依赖文件
pip freeze > requirements.txt
3.编写Dockerfile文件
# 使用官方 Python 3.8 镜像作为基础镜像
FROM python:3.8.0
# 设置维护者信息
LABEL maintainer="matt@wrlog.com"
# 设置pip配置文件,使用清华大学的镜像源
RUN mkdir -p /root/.config/pip && \
echo "[global]" > /root/.config/pip/pip.conf && \
echo "index-url = https://pypi.tuna.tsinghua.edu.cn/simple" >> /root/.config/pip/pip.conf
#安装自定义python环境
RUN python -m pip install pip==22.1
RUN pip install setuptools==61.2.0
RUN apt install gcc
# 设置工作目录
WORKDIR /app
# 复制环境文件和项目文件到工作目录
COPY requirements.txt /app/
#COPY . /app/
# 安装 Python 依赖
RUN pip install -r requirements.txt
# 启动uWSGI服务器
CMD ["/bin/bash", "/www/project/xxx/start.sh"]
4.创建Docker镜像
docker build -t dockerapp .
5.建立docker-compose.yml启动文件
version: '3.8'
services:
web:
image: dockerapp
ports:
- "8081:8081"
volumes:
- /www/project/xxxx:/www/project/xxxx # 将宿主机当前目下的xxxx目录挂载到容器的xxxx目录
# environment:
# - DEBUG=false
# 其他环境变量...
restart: always
# 其他配置...
6.如果使用本地mysql,修改settings.py中数据库连接IP为本机网卡IP或本机docker IP
使用uwsgi需要取消后台模式,注释掉”daemonize”
7.使用docker-compose up -d 启动docker应用,docker-compose down 关闭docker应用