♂️ 个人主页: @计算机魔术师
作者简介:CSDN内容合伙人,全栈领域优质创作者。
该文章收录专栏
✨—【Django | 项目开发】从入门到上线 专栏—✨
书接上文我们使用docker部署好了 nginx gunicorn mysql django
,本文将项目部署到腾讯云服务器中进行线上测试
【云原生 | Docker】部署 Django & Nginx & Gunicorn
【云原生| Docker】 部署 Django & mysql 项目
部署的第一步是购买云服务器,博主在第一次购买时很纠结与购买那个服务器(心疼钱),在网上查阅多方资料,推荐 校园云服务器,对于学生优惠好一点 一年60(点击链接跳转查看)
文章同款服务器 是, 校园云服务器 轻量应用服务器2核2G
对于学习和部署小型应用已经足够使用了。
在购买好服务器后,我们可以下载xshell,xftp
连接工具 xshell官网地址(需要获取服务器公网ip连接和设置实例密码),连接到云服务器实例。
注意:需要使用
root
管理员登录,不然没有权限进行操作
有两种办法获取我们的代码
a. 首先安装git
sudo yum install -y git
他会自动安装所有的依赖,查看版本
b. 配置
.配置一个用于提交代码的用户,输入指令:
git config --global user.name "Your Name"
同时配置一个用户的邮箱,输入命令:
git config --global user.email "[email protected]"
生成公钥和私钥(用于github)
ssh-keygen -t rsa -C "[email protected]" //执行后一直回车即可
获取ssh key公钥内容(id_rsa.pub)
cd ~/.ssh
cat id_rsa.pub
第四步:Github账号上添加公钥
进入Settings设置
添加ssh key,把刚才复制的内容粘贴上去保存即可
第五步:验证是否设置成功
ssh -T [email protected] // 而后填写 yes
显示如下信息表明设置成功
在clone仓库的时候使用ssh便不需要再次账号验证了
d. 拉取代码
cd /
mkdir code
cd code
git init
git pull [email protected]:Yourname/仓库名称.git
我们在选择镜像时已经在购买腾讯云服务器选择了docker,所以这里不用再安装
如果是其他云服务器,或者已有服务器但没有下载安装docker, 以下是我觉得挺不错的文章
参考一:https://cloud.tencent.com/developer/article/1701451
参考二:https://blog.csdn.net/JunyouYH/article/details/120584027
docker命令启动镜像
docker-compose up --bulid
这一步的是 docker-compose buile --no-cahed
与 docker-compose up -d
的结合
解决过程:
- 根据报错一:
Different lower_case_table_names settings for server ('1') and data dictionary ('2').
,猜测原因是docker-compose up
中mysql8
数据库的问题,(linux
自身启动默认开启lower_case_table=0
, 且无法启动镜像)
方案:cp
配置文件下来,修改结束cp
回去,修改lower_case_table=1
,仍然报错,变化了数字,0 - > 1, 尝试设置为2, 报错回原来的信息,
阿里云解答 https://help.aliyun.com/document_detail/147946.html
- 根据报错二:
Data Dictionary initialization failed.
a. 删除/var/lib/mysql
文件,失败
b. 注释掉#datadir=xxx
, 失败
c. 数据加载目录datadir
中在上传文件时docker对于挂载在var/lib/mysql
已存在文件,删除整个文件,重新构造镜像, 解决!
参考:https://blog.csdn.net/liurui50/article/details/105478422
参考:https://blog.csdn.net/qq_33801641/article/details/120756083
- 如果都解决不了最后思路:设置
mysql
版本为mysql5
,重新构造
公网ip访问部署在云服务器的web项目,配置安全组
配置安全组参考文章:
访问。登录后台后会出现
docker exec -it [container_id] /bin/bash
python manage.py createsuperuser # 创建超级用户用于登录
部署反思:
部署项目应该保持干净的目录
运行测试所生成的数据或文件不要带入部署文件中
测试代码与部署代码部分在上传也应该修改好
到这里,如果还有什么疑问
欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!
如果对你有帮助,你的赞是对博主最大的支持!!