比较理想的环境搭建还是使用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"]
整个工程结构如下:
创建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
这样我们在浏览器就能看到我们的工程了
下一节我们讲:docker里面的项目怎么断点调试
然后我们再讲:django里的app怎么独立发布到pip,可以实现多app之间功能复用
总结
本文是录制课程视频稿件,更多内容请关注我抖音或者西瓜视频、B站等账号教程内容
关注我,让你看到更多前后端实战(django、docker、iOS、安卓、vue、uniapp)