1.docker起3个容器,mysql,nginx,app
2.配置app的conf下的xxx.ini
[uwsgi]
chdir = /home/jpx/auto_cmdb/auto_cmdb
socket = 172.20.0.4:80
#http = 172.20.0.4:80
static-map = /static=/home/jpx/auto_cmdb/auto_cmdb/allstatic
module = auto_cmdb.wsgi
master = true
processes = 6
vacuum = true
logto = /home/jpx/auto_cmdb/auto_cmdb/logs/auto_cmdb.log
3.cp应用容器内的静态文件到nginx容器内(在终端上执行)
docker cp cmdb-server:/home/jpx/auto_cmdb/auto_cmdb/allstatic/ .
docekr cp allstatic/ nginx-server:/
4.配置nginx中/etc/nginx/conf.d/default.conf
upstream django {
server 172.21.0.2:80; #应用容器的端口
}
server {
listen 172.21.0.6:80; #nginx自己的IP
server_name nginx-server;
charset utf-8;
client_max_body_size 75M;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location /static {
alias /allstatic; #访问路径
}
location / {
uwsgi_pass django;
include uwsgi_params;
}
手工部署cmdb
1.准备好容器
mysql(用来存储数据),python3(主项目的运行环境),redis,rabbitmq,(这两个都可以实现命令的异步执行),nginx(用来实现反向代理)
image.png
2.拉取gitlab代码
进入python3环境的容器拉取代码
git clone -b 所开发的分支 sshgit@xxxxxx
在之前项目的主目录下
pip3 freeze > requestment.txt 冻结执行项目的环境并保存
在容器克隆下来项目后执行
pip3 install -r requestment.txt 下载所需环境
接下来需要处理django环境中的static文件,在settings中写入
STATIC_ROOT = os.path.join(BASE_DIR,"allstatic")
注释掉
#STATICFILES_DIRS = [
# os.path.join(BASE_DIR, 'static'),
#]
在项目的主环境下执行
python3 manage.py collectstatic 生成目录 allstatic
收集所有静态文件处理完毕项目的静态文件之后, 就可以让后面提到的 uwsgi 或者 nginx 中的任何一个很方便的使用了
继续在当前目录下创建 conf/uwsgi.ini 写入
[uwsgi]
chdir = /opt/cmdbteam/auto_cmdb
socket = 172.20.0.4:80
#http = 172.20.0.4:80
#static-map = /static=/opt/cmdbteam/auto_cmdb/allstatic
module = auto_cmdb.wsgi
网友评论