首先拉取python3.6环境镜像文件,这里拉取为python3.6环境并且对于utf8编码支持,自带virtualenv虚拟环境包
# 拉取mc706/pipenv-3.6镜像
docker pull mc706/pipenv-3.6
如果拉取比较慢,可以考虑是否有更换docker源地址,之前题主有写到更换docker源地址的博客,可以移驾至:https://blog.csdn.net/weixin_42693794/article/details/84931697
守护模式运行镜像:
# 以守护模式运行镜像,设容器名为pythonenvs,并映射8001端口
docker run -di --name=pythonenvs -p 8001:8001 mc706/pipenv-3.6
将项目拷贝到容器home目录下:
# 将项目文件拷贝至容器pythonenvs下的home目录下
docker cp 项目文件夹 pythonenvs:/home/
交互模式进入容器:
docker exec -it pythonenvs /bin/bash
进入容器后更新apt-get源:
apt-get update
下载vim编辑器:
apt-get install vim
新建文件夹:
mkdir ~/.pip
更换pip源地址为阿里地址:
vim ~/.pip/pip.conf
加入如下内容并保存:
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple
安装virtualenvwrapper:
pip install virtualenvwrapper
编辑.bashrc文件:
vim ~/.bashrc
在文件最后添加如下内容:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
让编辑后的文件生效:
source ~/.bashrc
新建虚拟环境test:
mkvirtualenv test
在确定进入到test环境下安装项目所需的包:
pip install -r requirements.txt
安装uwsgi服务:
pip install uwsgi
进入到项目下manage.py同级目录下新建uwsgi.ini文件并编辑:
vim uwsgi.ini
添加如下配置信息:
uwsgi]
# http = 172.17.0.2:8001 # uwsgi启动ip+端口(不使用nginx时)
socket = 172.17.0.2:8001 # uwsgi启动ip+端口(使用nginx时)
chdir = 项目绝对路径(到manage.py所在文件夹下)
wsgi-file = xxx/wsgi.py(相对于chdir的wsgi.py的位置)
master = true # ----》主进程
processes=10 # ---->最大数量的工作进程
pidfile=uwsgi.pid
daemonize=uwsgi.log # 存放uwsgi日志
virtualenv = 虚拟环境路径(/home/.virtualenvs/test)
以上配置文件请根据自己的实际情况修改,题主已给出提示信息
启动uwsgi:
uwsgi --ini uwsgi.ini
可以查看uwsgi.log判断服务是否启动成功
最后可以通过宿主机浏览器,通过127.0.0.1:8001来访问测试(如果你用的是restframework框架的话)
------------------------------------------------------------------------分割线----------------------------------------------------------------------------------
拉取ngixn镜像:
docker pull nginx
以守护模式运行nginx镜像:
docker run -di --name=nginx_test nginx
新建文件,用于存放nginx配置文件:
mkdir /etc/project_nginx
将nginx配置文件拷贝至本地:
docker cp nginx_test:/etc/nginx /etc/project_nginx/
关闭并删除nginx容器:
# 关闭nginx容器
docker stop nginx_test
# 删除nginx容器
docker rm nginx_test
重新建立nginx容器,并将配置文件挂载至nginx容器内:
docker run -di --name=nginx -p 80:80 -p 8000:8000 -v /etc/project_nginx/nginx:/etc/nginx nginx
将静态文件拷贝至容器内:
docker cp 静态文件(如static文件夹,文件夹下面第一级必须有index.html文件) nginx:/usr/share/nginx/html/
修改宿主机本地nginx配置文件:
vim /etc/project_nginx/nginx/conf.d/default.conf
修改如下:
修改另一个nginx配置文件:
vim /etc/project_nginx/nginx/nginx.conf
添加如下信息:
配置完成后重启nginx容器:
docker restart nginx
以上nginx配置完成~~~~~~~~~~~
----------------------------------------------------------------------分割线------------------------------------------------------------------------------------------
mysql配置很简单如下:
首先拉取镜像:
docker pull mysql
以守护模式启动mysql,并为root用户设置密码,映射3306端口(请确保3306端口未被占用,最好本地未安装mysql以免冲突)
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root密码 mysql
进入mysql容器:
docker exec -it mysql /bin/bash
进入mysql数据库,并创建项目所需的表,到此mysql配置完成
---------------------------------------------------------------------分割线-------------------------------------------------------------------------------------------
拉取redis镜像:
docker pull redis
以守护模式启动redis,并映射6379端口(请确保6379端口未被占用,最好本地未安装redis以免冲突)
docker run -di --name=redis -p 6379:6379 redis
redis配置完成
~~~~~~~修改相应的连接redis数据库,mysql数据库的ip地址,重启uwsgi部署完成
~此时可以通过宿主机http://宿主机ip访问你所部署的网站了
~~~~~~~~原创制作,转载请注明出处,谢谢^o^
觉得对你有帮助就支持一下作者吧,谢谢~