django开发环境搭建(docker版)

435 阅读2分钟

比较理想的环境搭建还是使用docker,virtualenv虚拟环境次之,很多人都使用virtualenv,但是最终上线的时候使用docker,我这里直接一次到位,直接使用docker,并介绍如何在pycharm中使用docker,并且能下断点调试项目!

我使用的开发环境

电脑:macbook pro pycharm 2021.3 专业版 docker desktop 4.16.2 & docker-component

docker加速

在docker-desktop里面,docker Engine下配置下面内容,阿里云:cr.console.aliyun.com/

  "registry-mirrors": [
     "https://xxx.mirror.aliyuncs.com",
     "http://hub-mirror.c.163.com"
  ]

 经过大量实测,复现加速并没有想象中的好用,最终使用梯子成功拉取镜像

创建docker-component配置文件

version: "3.1"

services:
  djangoproj:
    image: python:3.8
    container_name: djangoproj
    expose:
      - "8003"
    ports:
      - "8003:8003"
    environment:
      - DEBUG=False
    restart: always
    tty: true
    stdin_open: true

docker-compose up 拉取镜像,docker exec -it djangoproj bash 进入镜像,这样直接在容器内可以使用python

配置升级

通过上述方式,我们发现容器内只有python环境,没有django,下面构建出一个带django的镜像

自定义镜像dockerfile

FROM python:3.8
LABEL maintainer="lichanghong <1211054926@qq.com>"
MAINTAINER lichanghong
ENV PYTHONUNBUFFERED 1
​
WORKDIR /arbiproj
COPY . /arbiproj
RUN pip3 --default-timeout=10000 install -i https://pypi.doubanio.com/simple/ -r requirements.txt  \
&& chmod 777 /tmp
ENTRYPOINT ["sh","./start.sh"]

整个工程结构如下:

image.png

创建django工程,修改基本配置

创建工程(python和Django本地环境自行搭建)

django-admin startproject learnproj
python3 manage.py startapp App

创建docker-component配置文件

version: "3.1"

services:
  djangoproj:
    build: ./arbiproj
    container_name: arbiproj
    expose:
      - "8003"
    ports:
      - "8003:8003"
    volumes:
      - ./arbiproj:/arbiproj
      - ./arbiproj/log:/tmp # 挂载uwsgi日志
    environment:
      - DEBUG=False
    restart: always
    tty: true
    stdin_open: true

执行docker-compose build 成功之后运行:docker-compose up -d

这样我们在浏览器就能看到我们的工程了

image.png

下一节我们讲:docker里面的项目怎么断点调试

然后我们再讲:django里的app怎么独立发布到pip,可以实现多app之间功能复用

总结

本文是录制课程视频稿件,更多内容请关注我抖音或者西瓜视频、B站等账号教程内容

关注我,让你看到更多前后端实战(django、docker、iOS、安卓、vue、uniapp)