1. 前言
《Django开发微信公众平台管理系统——第0章》一文中完成了wecms项目初始框架的搭建,并且绑定了微信公众号,实现了回复用户的任意消息。
但是,wecms项目是运行在本地的,关机后服务就不可用了,因此需要把项目部署到线上。本文中会使用docker搭建django环境,并且部署wecms项目。
2. 安装django
1、登录dockerhub查看需要的Django - Docker Official Images。
wecms依赖django2.1.7,但是没有对应版本,因此需要采用Plan B,自己安装Django。
2、登录dockerhub查看需要的Python - Docker Official Images。
3、下载python镜像(wecms依赖python3.6.3)docker pull python:3.6.3
4、导出本地依赖信息
1 | pip freeze > requirements.txt |
导出后把requirements.txt上传到服务器。
5、编写Dockerfile
安装django2.1.7,指定工作目录,添加启动命令
1 | FROM python:3.6.3 |
6、生成wecms镜像并上传
1 | docker build -t voidking/wecms:v1.0 . |
7、下载项目源码
1 | cd /opt |
8、启动wecms服务
1 | docker run --name vk-wecms -d \ |
以上命令:
- 命名容器为vk-wecms,后台运行
- 映射宿主机8000端口到容器的8000端口
- 挂载宿主机目录/opt/wecms到容器目录/opt/wecms
更多启动命令参数可以参考python - How to use this image和django - How to use this image。
9、验证安装docker ps
,nginx启动正常的话就可以看到vk-wecms容器。curl localhost:8000
,可以看到welcome to wecms!
浏览器访问 http://hostip:8000/ ,提示You may need to add ‘hostip’ to ALLOWED_HOSTS.
因此修改 wecms/wecms/settings.py ,添加:
1 | ALLOWED_HOSTS = ['*'] |
修改后的tag为v0.0.1。
3. 安装mysql
当前项目还没有使用到数据库,而且默认使用sqlite3,不过后期会改成mysql,所以这里做个铺垫。
mysql安装配置参考《使用Docker安装配置Mysql》。
4. 域名配置
4.1. 域名解析
dnspod添加A记录,wecms记录值解析到hostip。
4.2. 配置Nginx
创建 /etc/nginx/conf.d/wecms.voidking.com.conf ,内容为:
1 | server { |