ENV PYTHONUNBUFFERED 1
RUN mkdir -p /code
COPY ./requirements.txt /code
WORKDIR /code
RUN sed -i “s/archive.ubuntu./mirrors.aliyun./g” /etc/apt/sources.list
RUN sed -i “s/deb.debian.org/mirrors.aliyun.com/g” /etc/apt/sources.list
RUN apt-get clean && apt-get -y update && \
apt-get -y install libsasl2-dev python-dev libldap2-dev libssl-dev libsnmp-dev
RUN pip3 install --index-url https://mirrors.aliyun.com/pypi/simple/ --no-cache-dir -r requirements.txt
COPY ./* /code/
使用 Dockerfile 来创建镜像,Python 版本是 3.6.8,将源代码拷贝到容器中 /code
目录。
docker-compose
version: ‘3’
services:
web:
build:
context: .
dockerfile: Dockerfile
image: web
container_name: web
hostname: web
restart: always
command: python /code/manage.py runserver 0.0.0.0:8000
volumes:
- .:/web
ports:
- “8000:8000”
depends_on:
- mysql
mysql:
image: mysql
container_name: mysql
hostname: mysql
restart: always
command: --default-authentication-plugin=mysql_native_password --mysqlx=0
ports:
- 3306:3306
volumes:
- ./db:/var/lib/mysql
environment:
-
MYSQL_HOST=localhost
-
MYSQL_PORT=3306
-
MYSQL_DATABASE=dev
-
MYSQL_USER=dev
-
MYSQL_PASSWORD=123456
-
MYSQL_ROOT_PASSWORD=123456
使用 docker-compose 来编排容器,一共启两个服务,web
服务就是后台的 Django 服务,mysql
是数据库服务。
有三点需要注意:
-
web
服务使用depends_on
命令,表示依赖于mysql
服务。 -
mysql
服务一定要加--default-authentication-plugin=mysql_native_password
命令。因为从 MySQL 8.0 开始,默认的加密规则使用的是 caching_sha2_password,而我们的客户端并不支持。之前使用的是 mysql_native_password。 -
使用
volumes
来持久化数据,否则容器删除之后,数据就都丢了。
requirements
Django==2.2.11
mysqlclient==1.4.6
启动 Django 需要的 pip 包,Django 版本至少要 2.0,否则会报错。
Django settings
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘dev’,
‘USER’: ‘dev’,
‘PASSWORD’: ‘123456’,
‘HOST’: ‘mysql’,
‘PORT’: ‘3306’
}
}
在 Django settings 文件中配置数据库信息,内容需要与 docker-compose 中一致。
有一点需要注意,HOST 一定要配置成 docker-compose 中的服务名称,在我这里是 mysql
。配置成其他,比如 localhost 或者 127.0.0.1 会报错。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
6129f47b8a67243c1008edf79.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)