Merge pull request #471 from liangliangyy/dev

增加docker部署支持
sh_branch
且听风吟 5 years ago committed by GitHub
commit 6da6bd75cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -20,6 +20,7 @@
- 网站异常邮件提醒,若有未捕捉到的异常会自动发送提醒邮件。
- 集成了微信公众号功能现在可以使用微信公众号来管理你的vps了。
## 安装
mysql客户端从`pymysql`修改成了`mysqlclient`,具体请参考 [pypi](https://pypi.org/project/mysqlclient/) 查看安装前的准备。
@ -37,19 +38,6 @@ mysql客户端从`pymysql`修改成了`mysqlclient`,具体请参考 [pypi](htt
下载 http://peak.telecommunity.com/dist/ez_setup.py 和 https://raw.github.com/pypa/pip/master/contrib/get-pip.py 这两个文件,双击运行。
### 配置
配置都是在 `setting.py` 中,部分配置迁移到了后台配置中。
很多 `setting` 配置我都是写在环境变量里面的.并没有提交到 `github` 中来.例如`SECRET_KEY`,`OAHUTH`,`mysql`以及邮件部分的配置等.你可以直接修改代码成你自己的,或者在环境变量里面加入对应的配置就可以了.
`test`目录中的文件都是为了`travis`自动化测试使用的.不用去关注.或者直接使用.这样就可以集成`travis`自动化测试了.
`bin`目录是在`linux`环境中使用`Nginx`+`Gunicorn`+`virtualenv`+`supervisor`来部署的脚本和`Nginx`配置文件.可以参考我的文章:
>[DjangoBlog部署教程](https://www.lylinux.net/article/2019/8/5/58.html)
有详细的部署介绍.
## 运行
@ -109,7 +97,17 @@ CREATE DATABASE `djangoblog` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8
执行: `./manage.py runserver`
浏览器打开: http://127.0.0.1:8000/ 就可以看到效果了。
浏览器打开: http://127.0.0.1:8000/ 就可以看到效果了。
## 服务器部署
本地安装部署请参考 [DjangoBlog部署教程](https://www.lylinux.net/article/2019/8/5/58.html)
有详细的部署介绍.
本项目已经支持使用docker来部署如果你有docker环境那么可以使用docker来部署具体请参考:[docker部署](/docs/docker.md)
## 更多配置:
[更多配置介绍](/docs/config.md)
[集成elasticsearch](/docs/es.md)

@ -0,0 +1,2 @@
FROM elasticsearch:7.12.1
RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install -b https://ghproxy.com/https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip

@ -0,0 +1,33 @@
version: '3'
services:
es:
build: ./bin/es-support
container_name: es
ports:
- 9200:9200
djangoblog:
build: .
restart: always
command: bash -c 'sh /code/DjangoBlog/bin/docker_start.sh'
ports:
- "8000:8000"
volumes:
- ./collectedstatic:/code/DjangoBlog/collectedstatic
environment:
- DJANGO_MYSQL_DATABASE=djangoblog
- DJANGO_MYSQL_USER=root
- DJANGO_MYSQL_PASSWORD=DjAnGoBlOg!2!Q@W#E
- DJANGO_MYSQL_HOST=db
- DJANGO_MYSQL_PORT=3306
- DJANGO_MEMCACHED_LOCATION=memcached:11211
- DJANGO_ELASTICSEARCH_HOST=es:9200
links:
- db
- memcached
depends_on:
- db
container_name: djangoblog

@ -0,0 +1,47 @@
# 使用docker部署
使用docker部署支持如下两种方式
## docker镜像方式
本项目已经支持了docker部署如果你已经有了`mysql`,那么直接使用基础镜像即可,启动命令如下所示:
```shell
docker run -d -p 8000:8000 -e DJANGO_MYSQL_HOST=mysqlhost -e DJANGO_MYSQL_PASSWORD=mysqlrootpassword -e DJANGO_MYSQL_USER=root -e DJANGO_MYSQL_DATABASE=djangoblog --name djangoblog liangliangyy/djangoblog
```
## 使用docker-compose
如果你没有mysql等基础服务那么可以使用`docker-compose`来运行,
具体命令如下所示:
```shell
docker-compose build
docker-compose up -d
```
本方式生成的mysql数据文件在 `bin/datas/mysql` 文件夹。
等启动完成后,访问 [http://127.0.0.1](http://127.0.0.1) 即可。
## 配置说明:
本项目较多配置都基于环境变量,所有的环境变量如下所示:
| 环境变量名称 | 默认值 | 备注 |
|---------------------------|----------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| DJANGO_DEBUG | False | |
| DJANGO_SECRET_KEY | DJANGO_BLOG_CHANGE_ME | 请务必修改,建议[随机生成](https://www.random.org/passwords/?num=5&len=24&format=html&rnd=new) |
| DJANGO_MYSQL_DATABASE | djangoblog | |
| DJANGO_MYSQL_USER | root | |
| DJANGO_MYSQL_PASSWORD | djangoblog_123 | |
| DJANGO_MYSQL_HOST | 127.0.0.1 | |
| DJANGO_MYSQL_PORT | 3306 | |
| DJANGO_MEMCACHED_ENABLE | True | |
| DJANGO_MEMCACHED_LOCATION | 127.0.0.1:11211 | |
| DJANGO_BAIDU_NOTIFY_URL | http://data.zz.baidu.com/urls?site=https://www.example.org&token=CHANGE_ME | 请在[百度站长平台](https://ziyuan.baidu.com/linksubmit/index)获取接口地址 |
| DJANGO_EMAIL_TLS | False | |
| DJANGO_EMAIL_SSL | True | |
| DJANGO_EMAIL_HOST | smtp.example.org | |
| DJANGO_EMAIL_PORT | 465 | |
| DJANGO_EMAIL_USER | SMTP_USER_CHANGE_ME | |
| DJANGO_EMAIL_PASSWORD | SMTP_PASSWORD_CHANGE_ME | |
| DJANGO_ADMIN_EMAIL | admin@example.org | |
| DJANGO_WEROBOT_TOKEN | DJANGO_BLOG_CHANGE_ME
|DJANGO_ELASTICSEARCH_HOST|
第一次启动之后,使用如下命令来创建超级用户:
```shell
docker exec -it djangoblog python /code/DjangoBlog/manage.py createsuperuser
```
Loading…
Cancel
Save