尝试用docker部署django等容器

参考文档

docker compose

https://blog.csdn.net/pushiqiang/article/details/78682323

https://www.cnblogs.com/morang/p/devops-docker24-composev2-install.html
参考docker版本和docker compose的版本对应关系
目前是最新的
docker version
docker-compose version

docker compose 安装教程,主要是在宿主机上安装

参考https://blog.csdn.net/zt_9773/article/details/121015534 https://pythondjango.cn/django/advanced/16-docker-deployment/ ,但是公司内部访问github很慢,像采用镜像的方式,尝试用

curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

发现这个镜像源不好用。。。
然后参考https://blog.csdn.net/pushiqiang/article/details/78682323

可以直接用pip安装

pip install docker-compose

安装django

本来想直接用docker的这个服务直接启动django,但是找了半天也没在github里面找到整个的demo,就想先自己学学这个,然后看看django的配置文件吧。官网:https://docs.djangoproject.com/en/4.2/intro/overview/#install-it

安装django比较简单,可以建立虚拟环境安装,我比较懒就直接pip install django
然后按照教程就开始创建自己的第一个projectdjango-admin startproject mysite
然后基本就是按照这个教程里面建立的 https://pythondjango.cn/django/basics/2-installation-use/
遇到的主要问题就是我的电脑是没有界面的,所以需要修改django服务的挂载端口

然后参照 https://pythonjishu.com/jfzffqtemridxyq/
修改挂载的端口,主要修改如下:
启动的时候指定端口号
python manage.py runserver 0.0.0.0:<ports> ports处就是需要挂载的新的端口号,如8090
这样外部访问的时候,只需要访问IP:8090,就可以获取到django的服务。
但是如果只修改这个端口会报错无法访问,所以还需要修改django项目中的settings.py文件的ALLOWED_HOSTS = ['0.0.0.0', '*']

然后就可以访问了。

docker挂载报错记录

docker挂载文件的时候必须要预先创建文件,不然会报错 比如nginx容器内的conf文件,必须要预先创建空文件

docker run --name nginx_master -d -p 8082:80 -v /app/nginx_master/html/:/usr/share/nginx/html -v /app/nginx_master/logs:/var/log/nginx -v /app/nginx_master/conf/nginx.conf:/etc/nginx/nginx.conf -v /app/nginx_master/default/:/etc/nginx/conf.d/ -d nginx --log-driver json-file --log-opt max-size=1024m

接着打怪升级,继续部署django和数据库联动

参照https://www.byincd.com/bobjiang/article-0193/继续部署,对于数据库安装有很多问题;

  1. 比如安装过程中会有,没有安装包的报错
    报错需要执行sudo apt-get update
  2. 版本不一致的问题
    版本报错
    由于统一管控mysql的版本,所以不能升级,只能不按照教程配置,就先用默认的数据库了。后面需要探索一下数据库的格式。
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
        #'ENGINE' : 'django.db.backends.mysql' ,
        #'NAME': 'test',
        #'USER': 'aaa',
        #'PASSWORD': 'aaaa',
        #'HOST': 'aaaa',
        #'PORT': aaaaa,
        #'OPTIONS': {
         #   'autocommit': True,
          #  'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        #},
    }
}

vue安装和部署

看了一下vue是一个前端的框架,可以用组件化去设计前端从而减少工作量
vue组件介绍
安装过成也比较繁琐,需要安装npm,然后npm源比较慢,需要换cnpm的源,然后装vue-cli的脚手架就可以初始化一个vue的工程了。
这个依赖外网。当然也可以离线安装,我比较懒。
可以参照系统 安装linux教程。。。
vue和其他工具的关系
所以感觉vue就是生成html文件,包括组件的文件放到django的目录中就可以了。

开始用docker-compose部署试试

参考教程:
windows部署

linux部署,但是文件夹写的不清楚

容器依赖关系写的很清楚

uwsgi的用处,可以让访问变成并发

基本参照这个流程画一个我想要的工具链 vue+django+redis+postgresql+uwsgi+nginx
整体架构图

文件夹的结构
vue的目录结构可以放在这里

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值