前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云原生 | Docker】腾讯云部署Django项目 (服务器选型、git配置、docker三分钟部署)

【云原生 | Docker】腾讯云部署Django项目 (服务器选型、git配置、docker三分钟部署)

作者头像
计算机魔术师
发布2022-09-28 20:30:08
1.4K0
发布2022-09-28 20:30:08
举报
文章被收录于专栏:计算机魔术师计算机魔术师
在这里插入图片描述
在这里插入图片描述

🤵‍♂️ 个人主页: @计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。

该文章收录专栏—【Django | 项目开发】从入门到上线 专栏—

书接上文我们使用docker部署好了 nginx gunicorn mysql django,本文将项目部署到腾讯云服务器中进行线上测试 【云原生 | Docker】部署 Django & Nginx & Gunicorn 【云原生| Docker】 部署 Django & mysql 项目

文章目录

一、腾讯服务器部署

1.1 服务器选择

  1. 购买服务器

部署的第一步是购买云服务器,博主在第一次购买时很纠结与购买那个服务器(心疼钱😑),在网上查阅多方资料,觉得腾讯云对于新用户和学生优惠还是比较卷的,相比阿里云和华为云还是要优惠一点。 如果是新老用户的话推荐这款,对于新用户来说折扣还是很大的(第一次购买服务器优惠是很大的,所以一定要好好珍惜) 点击链接跳转查看

在这里插入图片描述
在这里插入图片描述

想必读者们大都是学生,那么就强烈建议购买 校园云服务器,对于学生优惠真的巨大(华为云与阿里云也有,但是腾讯云在这方面比较卷),一年的话才60元,配置好一点的话也贵不多。点击链接跳转查看

在这里插入图片描述
在这里插入图片描述

下文所部署使用的服务器便是校园云服务器轻量应用服务器2核2G, 对于学习和部署小型应用已经足够使用了。

  1. 点击链接到页面
在这里插入图片描述
在这里插入图片描述

点击购买

  1. 选择地域, 选择离你最近的一个地区就好了
在这里插入图片描述
在这里插入图片描述
  1. 选择镜像, 这里选择 centOS7.6 & Docker 20 镜像 这里说一点腾讯云做的比较好的一点的地方,之前我也是买过阿里云的服务器,但是镜像的话并没有这么多的选型,要使用Docker的话需要在服务器实例内另外安装Docker
在这里插入图片描述
在这里插入图片描述
  1. 在验证身份,人脸识别即可购买啦!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在购买好服务器后,我们可以下载xshell,xftp连接工具 xshell官网地址(需要获取服务器公网ip连接和设置实例密码),连接到云服务器实例。也可以使用腾讯云控制台自带的webshell点击登录连接服务器(网络卡的时候会挺卡的)

在这里插入图片描述
在这里插入图片描述

我们需要使用root管理员登录,不然没有权限进行操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 启动项目

1.2.1拉取代码

有两种办法获取我们的代码

  1. 我们在github或者gitee上拉取我们的项目
在这里插入图片描述
在这里插入图片描述

a. 首先安装git

sudo yum install -y git

他会自动安装所有的依赖,查看版本

在这里插入图片描述
在这里插入图片描述

b. 配置 .配置一个用于提交代码的用户,输入指令:

git config --global user.name "Your Name"

同时配置一个用户的邮箱,输入命令:

git config --global user.email "email@example.com"

生成公钥和私钥(用于github)

ssh-keygen -t rsa -C  "Your@email.com" //执行后一直回车即可

获取ssh key公钥内容(id_rsa.pub)

cd ~/.ssh
cat id_rsa.pub

复制全部内容

在这里插入图片描述
在这里插入图片描述

第四步:Github账号上添加公钥 进入Settings设置 添加ssh key,把刚才复制的内容粘贴上去保存即可

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第五步:验证是否设置成功

ssh -T git@github.com  // 而后填写 yes

显示如下信息表明设置成功

在这里插入图片描述
在这里插入图片描述

在clone仓库的时候使用ssh便不需要再次账号验证了

在这里插入图片描述
在这里插入图片描述

d. 拉取代码

cd /   
mkdir code
cd code 
git init 
git pull git@github.com:Yourname/仓库名称.git 

拉取成功

在这里插入图片描述
在这里插入图片描述
  1. 我们使用传输工具将文件传输过去(不推荐,一般部署项目都是拉取代码托管平台的)

我们在选择镜像时已经在购买腾讯云服务器选择了docker,所以这里不用再安装

在这里插入图片描述
在这里插入图片描述

1.2.2 docker启动

如果是其他云服务器,或者已有服务器但没有下载安装docker, 以下是我觉得挺不错的文章 参考一:https://cloud.tencent.com/developer/article/1701451 参考二:https://blog.csdn.net/JunyouYH/article/details/120584027

docker命令启动镜像

docker-compose --bulid

这一步的是 docker-compose buile --no-caheddocker-compose up -d的结合

构建镜像,运行容器,但是对于mysql又可能会报如下错误

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9EytzorG-1660916791410)(C:\Users\86181\AppData\Roaming\Typora\typora-user-images\image-20220819195804360.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9EytzorG-1660916791410)(C:\Users\86181\AppData\Roaming\Typora\typora-user-images\image-20220819195804360.png)]

解决过程:

  1. 根据报错一Different lower_case_table_names settings for server ('1') and data dictionary ('2').,猜测原因是docker-compose upmysql8数据库的问题,(linux自身启动默认开启 lower_case_table=0, 且无法启动镜像) ​ 方案cp配置文件下来,修改结束cp回去,修改lower_case_table=1,仍然报错,变化了数字,0 - > 1, 尝试设置为2, 报错回原来的信息,

​ 阿里云解答 https://help.aliyun.com/document_detail/147946.html

  1. 根据报错二: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

  1. 如果都解决不了最后思路:设置mysql版本为mysql5,重新构造

1.2、访问项目

公网ip访问部署在云服务器的web项目,配置安全组

配置安全组参考文章

访问。登录后台后会出现

在这里插入图片描述
在这里插入图片描述

需要在settiing文件中添加公网ip

在这里插入图片描述
在这里插入图片描述

进入容器

docker exec -it [container_id] /bin/bash

python manage.py createsuperuser # 创建超级用户用于登录
在这里插入图片描述
在这里插入图片描述

部署反思:

部署项目应该保持干净的目录

运行测试所生成的数据或文件不要带入部署文件中

测试代码与部署代码部分在上传也应该修改好

 		        🤞到这里,如果还有什么疑问🤞
 	🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
 		🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、腾讯服务器部署
    • 1.1 服务器选择
      • 1.2 启动项目
        • 1.2.1拉取代码
        • 1.2.2 docker启动
      • 1.2、访问项目
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档