前言:网上找了许多教程,最后都失败了,自己最后摸索了一段时间终于部署成功了
实验:数据库应用项目开发
实验要求
完成一个基于web的应用,后端访问了关系数据库(MySQl、Oracle、PostgreSQL、openGauss);
............................(此处省略项目的各种信息)
7、项目的部署
7.1硬件环境:
-
虚拟机:VMware Workstation Pro
-
操作系统:CenterOS 7.6
7.2软件环境:
Docker 24.0.7、Django 2.2、mysql:latest
7.3部署的步骤
1)安装docker
2)拉取mysql镜像
3)Django项目容器的构建
(a) 项目的目录结构:
(b) 编写requirements.txt
requirements.txt中包含了这个项目所需要用到的包
在pycharm中使用pipreqs自动生成requirements.txt
(c) 编写Dockerfile
Dockerfile中对系统环境,镜像目录等进行设置,通过Dockerfile去执行设置好的操作命令,保证通过Dockerfile的构建镜像是一致的。
(d) 编写docker-compose.yml文件
Compose 是一个用于定义和运行多容器 Docker 的工具。借助 Compose,可以使用 YAML 文件来配置应用程序的服务。
先安装docker-compose
docker-compose.yml文件的具体内容:
(e) 注意在setting.py中的设置要与docker-compose.yml文件一样,尤其是HOST部分不能写127.0.0.1,否则会报错无法连接上数据库。
(f) 创建镜像,然后再启动服务。
也可以创建完镜像容器再分别启动
(g)进行数据库的迁移(最关键的一步)
使用命令docker exec -it databaseteemwork_db_1 bash进入数据库容器,登录账号后创建名为ustb2021的数据库
然后进入django容器中docker exec -it databaseteemwork_dj_web_1 bash
执行python manage.py makemigrations和python manage.py migrate将数据迁移过去
再进入mysql容器中执行sql语句创建数据信息,由于篇幅只展示部分
最后验证一下:
7.4 测试
最后在主机上使用虚拟机的ip加端口号访问该项目,如果要部署到服务器也是同样的步骤。
登录http://192.168.37.138:8090/logreg/login/可以看到成功访问到了该项目,且数据库里的内容能够正确的访问到。