关于docker:海纳百川无所不容Win10环境下使用Docker容器式部署前后端分离项目DjangoVuejs
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_179 随着现代化产品研发的一直推动,咱们会发现,简直每个产品线都会蕴含性能各异的服务,而且服务与服务之间存在也会存在着盘根错节的依赖和被依赖关系,这就会带来一个世界性难题,我的项目部署的时候须要运维来手动配制服务之间通信的协定和地址,稍有不慎就会导致服务异样,同时如果服务器因为坏道或者其余起因导致更换物理机,重新部署新环境的老本也会十分之高。因而,咱们就会寄希望于Docker这种的容器技术能够让咱们构建产品所须要的所有的服务可能迅速快捷的重新部署,并且能够依据需要做横向扩大,且可能保障稳固的容灾性,在呈现问题的时候能够利用守护过程主动重启或者启动容灾备份。 本次咱们将在Win10环境下利用Docker容器技术来对前后端拆散我的项目Django+Vue.js进行打包,别离定制化对应的我的项目镜像,应答疾速部署以及高扩大的需要。 首先当然是装置Docker,能够参照这篇视频攻略:win10装置配置Docker并更换国内源。 随后在宿主机装置gunicorn,容器内咱们用异步的形式来启动Django pip3 isntall gunicorn geventDjango我的项目配置settings.py对应的利用: # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'corsheaders', 'rest_framework', 'myapp', 'dwebsocket', 'gunicorn' ]而后在Django我的项目的根目录编写gunicorn的配置文件:gunicorn.conf.py import multiprocessing bind = "0.0.0.0:8000" #绑定的ip与端口 workers = 1 #过程数这里留神一点,ip必须是0.0.0.0,不要写成127.0.0.1,否则外部环境会拜访不到容器内的服务,接下来在我的项目的根目录编写好依赖列表:requirements.txt Django==2.0.4 django-cors-headers==2.5.3 djangorestframework==3.9.3 celery==4.4.2 dwebsocket==0.5.12 redis==3.3.11 pymongo==3.8.0 PyMySQL Pillow pyjwt pycryptodome selenium qiniu gunicorn gevent这里须要留神的是,某些依赖的库最好用==标注出小版本,因为一会在容器内通过pip装置的时候,零碎有可能会主动帮你装置最新版导致一些依赖报错。 上面就是老套路,在根目录编写DockerFile文件: FROM python:3.7 WORKDIR /Project/mydjango COPY requirements.txt ./ RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple COPY . . ENV LANG C.UTF-8 CMD ["gunicorn", "mydjango.wsgi:application","-c","./gunicorn.conf.py"]本次的根底镜像咱们抉择3.7,毕竟2020年了,与时俱进还是很必要的。 ...