说明
优化方案:因为在实际开发中,经常修改前后端代码,但并不会频繁的安装第三方包,因此将前后端的第三方包做成基础镜像。 前后端代码修改之后,服务器重新构建前后端容器即可,并且在重新构建的时候,并不需要安装第三方包
在django-vue3-admin
项目中默认有以下:
-
dvadmin3-web
:前端容器 -
dvadmin3-django
:后端容器 -
dvadmin3-mysql
:mysql数据库容器 -
dvadmin3-celery
:异步任务容器 -
dvadmin3-redis
:redis数据库容器
我们在实际开发中,经常要重新构建的只有前端容器和后端容器,后三个容器一般是初始化生成之后就不会重新构建,因此优化前后端的Dockerfile
和DockerfileBuild
文件
docker_env/web
在开发中,如果前端引入了新的第三方的包,就重新构建一次基础镜像
构建前端基础包
DockerfileBuild
docker_env/web/DockerfileBuild
文件
dockerfile
下载node:16.19-alpine
镜像包
下载
node:16.19-alpine
镜像包到本地,提高dvadmin3-base-web
的构建速度
构建dvadmin3-base-web
上传到华为云镜像仓库
也可以是阿里云的镜像仓库,主要将前端基础镜像上传到自己的镜像仓库,提高
FROM
的速度
下载nginx:alpine
镜像包
上传到华为云镜像仓库
dockerfile
Dockerfile
修改docker_env/web/Dockerfile
文件,将FROM
改成自己的镜像仓库 因为在dvadmin3-base-web
中已经安装了所有的包,所以在Dockerfile
删除RUN yarn install --registry=https://registry.npmmirror.com
以提高构建速度
dockerfile
docker_env/django
在开发中,如果后端引入了新的第三方的包,就重新构建一次基础镜像
构建后端基础包
DockerfileBuild
docker_env/django/DockerfileBuild
文件
dockerfile
下载python:3.10-alpine
镜像包
下载
python:3.10-alpine
镜像包到本地,提高dvadmin3-base-django
的构建速度
构建dvadmin3-base-django
上传到华为云镜像仓库
Dockerfile
修改docker_env/django/Dockerfile
文件,将FROM
改成自己的镜像仓库 因为在dvadmin3-base-django
中已经安装了所有的包,所以在Dockerfile
删除RUN python3 -m pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt
以提高构建速度
dockerfile
docker_env/celery
Dockerfile
修改docker_env/celery/Dockerfile
文件,将FROM
改成自己的镜像仓库
dockerfile
需要注意的是,在自己的镜像仓库中,如果镜像类型:
- 私有:需要登录才能使用
- 公用:任何人都可以使用
服务器部署
初始化
第一次执行 sh init.sh
可能会出现后端容器连不上数据库
进入后端容器,手动执行
重新构建前端
本地开发过程中修改了前端代码,在服务器重新构建前端
重新构建后端
本地开发过程中修改了后端代码,在服务器重新构建后端
这样修改之后,速度超快的