当前位置: 首页 > news >正文

【华为云云耀云服务器L实例评测】- 云原生实践,快捷部署人才招聘平台容器化技术方案!

在这里插入图片描述

🤵‍♂️ 个人主页: @AI_magician
📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。
👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍
🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)

在这里插入图片描述

摘要:
在这里插入图片描述
感谢华为云提供的测评优惠卷,遥遥领先!!✨
华为云的云耀云服务器L实例备受推崇,以其高效、可靠和安全的基础设施服务而闻名。本文将为展示在该服务器上部署轻量化定制表单服务为例带你一文走进该服务器的方方面面。

上一篇文章我们讲述了 【华为云云耀云服务器L实例评测|云原生】自定制轻量化表单Docker快速部署云耀云服务器 一款基于pywebio 快速开发的表单,实现设置每个校区每个时间段只能被预约一次。(可以选择各种后端框架或者是内置服务器)

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

本次我们部署成熟应用,基于Django. docker. docker-compose 实现 !!

Github开源地址✨✨: recruitment-platform

在这里插入图片描述

在这里插入图片描述

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

还有通知钉钉机器人!!
在这里插入图片描述
Github开源地址✨✨: recruitment-platform


部署教程 ✨✨

快速上手云耀云服务器 首先进入到服务器后,我们需要安装docker环境。(哈哈哈ssh进来后还有打招呼)

在这里插入图片描述

Ubuntu20.04 安装教程在Docker官方文档
Document about docker install for ubuntu 这里就不赘述啦
在这里插入图片描述
在这里插入图片描述

为了测试安装成功,我们运行docker界的Heeloworld!!

在这里插入图片描述
再安装 docker-compose

apt install docker-compose 

在这里插入图片描述

拉取github项目命令(该服务器自带Git的哦✨)

git pull git@github.com:TobeMagic/recruitment-platform.git

安装后,我们运行docker 命令创建(要在Dockerfile文件目录下运行!!不然要指定路径哦),后面大家有需要我可以打包成镜像上传到Hub大家就可以直接在docker Hub拉取啦!!

要将APT的镜像源设置为国内的镜像源,您可以编辑/etc/apt/sources.list文件,并将其替换为适合您所在地区的镜像源。以下是一个示例,将Debian的镜像源更改为国内的镜像源(阿里云):

  1. 使用root权限或sudo权限打开/etc/apt/sources.list文件:

    sudo nano /etc/apt/sources.list
    ```
  2. 在编辑器中,将文件中的内容替换为以下内容:

    # 默认的镜像源注释掉,添加阿里云的镜像源
    deb http://mirrors.aliyun.com/debian/ buster main contrib non-free
    deb-src http://mirrors.aliyun.com/debian/ buster main contrib non-freedeb http://mirrors.aliyun.com/debian-security buster/updates main
    deb-src http://mirrors.aliyun.com/debian-security buster/updates maindeb http://mirrors.aliyun.com/debian/ buster-updates main contrib non-free
    deb-src http://mirrors.aliyun.com/debian/ buster-updates main contrib non-freedeb http://mirrors.aliyun.com/debian/ buster-backports main contrib non-free
    deb-src http://mirrors.aliyun.com/debian/ buster-backports main contrib non-free
    ```注意,上述示例是针对Debian 10(代码名称为Buster)的,如果您使用其他版本的Debian或不同的Linux发行版,请相应地修改镜像源地址。
  3. 保存并关闭文件。在Nano编辑器中,按下Ctrl + X,然后按下Y确认保存,最后按下Enter退出编辑器。

  4. 更新APT缓存以使更改生效:

    sudo apt update
    ```

现在,APT的镜像源已经被修改为国内的镜像源。您可以使用apt updateapt upgrade等命令来管理软件包并从国内镜像源进行软件包的下载和更新。

docker-compose up --build

在这里插入图片描述

这次和部署轻量化表单一样,再次迎来一点小插曲 🤦‍♂️

django 启动 docker-compose app_1 | django.db.utils.OperationalError: (2003, “Can’t connect to MySQL server on ‘db’ ([Errno 111] Connection refused)”)

在这里插入图片描述
这里显示了数据库无法连接,去查看了一下settings.py文件和docker-compose.yml文件,数据库端口和名称都是正确的,但是一直无法访问。具体可以看看下面的内容。
docker-compose.yml

  # 设置数据库 容器db:image: mysql:8volumes:- "./mysql/data:/var/lib/mysql"  # 设置timestamp 可为 null   #  设置字符集 (不是utf8会报错 #   collation 这是排序规则#      - "./mysql/conf/my.cnf:/etc/mysql/my.cnf"command: "mysqld --user=root --explicit_defaults_for_timestamp --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci"#      - -character-set-server=utf8mb4  # 设置默认字节#      - -collation-server=utf8mb4_general_ci #   设置排序#      - -explicit_defaults_for_timestamp=true # 设置可为 null#      --default-authentication-plugin=mysql_native_password # 使用 5.7 版本的密码验证ports:- "3306:3306"restart: alwaysenvironment:- MYSQL_PORT=3306- MYSQL_ROOT_PASSWORD=123456  # 一定要配置- MYSQL_DATABASE=django_recruitmentnetworks:- db_network

settings文件

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'django_recruitment','PASSWORD': '123456','PORT': '3306','USER': 'root','HOST': 'db',# 'HOST': '127.0.0.1','OPTIONS': {'charset': 'utf8mb4'},},

考虑到应该是因为mysql要先等待3306端口服务或进程启动并监听,才启动服务,往前找db容器的报错
在这里插入图片描述
可以发现,这里的错误和之前发的文章所遇见的是一摸一样的!!【云原生 | Docker】腾讯云部署Django项目 (服务器选型、git配置、docker三分钟部署) 这个是docker-compose启动中mysql的数据挂载过去时lower_case_table_names设置与数据字典的设置不一致,有两种解决方法,不需要持久化,先把该命令行注释重新构建,第二则是设置添加lower_case_table_names设置即可

my.cnf 文件挂载到 MySQL 容器中的 /etc/mysql/my.cnf 路径。

my.cnf 文件中,添加以下内容:

[mysqld]
lower_case_table_names=2

请确保将示例中的 your_password 替换为您自己设置的 MySQL root 密码。通过这样的配置,MySQL 容器将使用自定义的配置文件,并将 lower_case_table_names 设置为 2。不过到最后还是不行,因为数据恢复中缺少重要日志,需要强力恢复,但试了几个强度都不行,只能将原来mysql文件删除了,并配置好对应的,my.cnf 以便于部署新环境对应配置数据恢复, 以及 错误配置 bash-4.4# mysql mysql: [ERROR] unknown variable 'default-storage-engine=INNODB'

default-storage-engine变量在较新的MySQL版本中不再需要显式设置,因为默认的存储引擎已经是InnoDB。+

至此终于,终于成功了!!✨✨ 访问链接

在这里插入图片描述

接着我们进入到服务器看业务是否流程正常
在这里插入图片描述
接下来我们创建管理员,进入到后台管理页面

在这里插入图片描述

最后总结了一下,感觉在配置上还是要有改进的,也是感谢这次华为云云耀云服务器L实例评测

  1. dockerfile.ymal部署 可以规则化命名container_name 方便管理
  2. mysql.conf 和mysql版本一定要管理良好
  3. 及时做好备份
  4. 虽然django热插拔app,在部署需要了解每个app用途!不同方向的app应该分出来不同project。

Github开源地址✨✨: recruitment-platform

有问题欢迎大家提出issues! 如果喜欢请点点一个小小的star!! 点赞,关注收藏! 🤞

在这里插入图片描述

						  🤞到这里,如果还有什么疑问🤞🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳

相关文章:

【华为云云耀云服务器L实例评测】- 云原生实践,快捷部署人才招聘平台容器化技术方案!

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…...

【Java】泛型 之 什么是泛型

什么是泛型 泛型是一种“代码模板”,可以用一套代码套用各种类型。 在讲解什么是泛型之前,我们先观察Java标准库提供的ArrayList,它可以看作“可变长度”的数组,因为用起来比数组更方便。 实际上ArrayList内部就是一个Object[]…...

Python yaml 详解

文章目录 1 概述1.1 特点1.2 导入 2 对象2.1 字典2.2 数组2.3 复合结构 3 操作3.1 读取3.2 写入 1 概述 1.1 特点 yaml 文件是一种数据序列化语言,广泛用于配置文件、日志文件等特点: ① 大小写敏感。② 使用缩进表示层级关系。缩进时不允许使用 Tab 键…...

RabbitMQ消息可靠性(二)-- 消费者消息确认

一、消费者消息确认是什么? 在这种机制下,消费者在接收到消息后,需要向 RabbitMQ 发送确认信息,告知 RabbitMQ 已经接收到该消息,并已经处理完毕。如果 RabbitMQ 没有接收到确认信息,则会将该消息重新加入…...

【python第7课 实例,类】

文章目录 一、实例1.1实例的变量1.2实例方法1.3 构造方法1.4析构函数1.4预置实例属性: 二,类1.1类变量1.2类方法1.3静态方法1.4类属性的增删改查 一、实例 1.1实例的变量 使用示例 class dog:def __init__(self,k,c,a):self.kinds kself.color csel…...

RocketMQ源码解析(上)

一、ACL权限控制 应用场景: ​RocketMQ提供了针对队列、用户等不同维度的非常全面的权限管理机制。通常来说,RocketMQ作为一个内部服务,是不需要进行权限控制的,但是,如果要通过RocketMQ进行跨部门甚至跨公司的合作&…...

Webpack打包CSS文件,解决You may need an appropriate loader to handle this file type报错

在项目文件夹下创建webpack.config.js文件,该文件就是Webpack的配置文件 注意:该文件中遵循Node.js的代码格式规范 ,需要对导出配置文件中的内容 Webpack在默认情况下只能打包js文件,如果我们希望他能够打包其他类型的文件&#…...

轮换对称性

二重积分 普通对称性–D关于 y x yx yx对称: ∬ D f ( x , y ) d σ { 2 ∬ D 1 f ( x , y ) d σ f ( x , y ) f ( y , x ) 0 f ( x , y ) − f ( y , x ) \iint_{D}f(x,y)d\sigma\begin{cases} 2\iint_{D_1}f(x,y)d\sigma\ \ \ \ \ \ f(x,y)f(y,x) \\ 0 \ \…...

【MySQL基础】--- 约束

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 目录 一、什么…...

ROS2 的行为树 — 第 1 部分:解锁高级机器人决策和控制

一、说明 在复杂而迷人的机器人世界中,行为树(BT)已成为决策过程中不可或缺的一部分。它们提供了一种结构化、模块化和高效的方法来对机器人的行为进行编程。BT起源于视频游戏行业,用于控制非玩家角色,他们在机器人领域…...

kafka事务的详解

一 kafka事务的机制 1.1 kafka的事务机制 通过事务机制,KAFKA 可以实现对多个 topic 的多个 partition 的原子性的写入,即处于同一个事务内的所有消息,不管最终需要落地到哪个 topic 的哪个 partition, 最终结果都是要么全部写成功&#xf…...

Flutter Fair逻辑动态化架构设计与实现

本文的核心内容包括: 数据逻辑处理布局中的逻辑处理Flutter类型数据处理一、数据逻辑处理 我们接触的每一个Flutter界面,大多由布局和逻辑相关的代码组成。如Flutter初始工程的Counting Demo的代码: class _MyHomePageState extends State<MyHomePage> {// 变量 int…...

【每日一题】74. 搜索二维矩阵

74. 搜索二维矩阵 - 力扣&#xff08;LeetCode&#xff09; 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非递减顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返…...

软件测试进大厂,拿高薪,怎么做?看这里!

有些同学大学专业不对口&#xff0c;但有想进大厂想拿高薪心&#xff0c;只要你有想法&#xff0c;那就一定有实现的方法。 俗话说&#xff1a;“世间无难事&#xff0c;只怕有心人”。仔细思索一下&#xff0c;哪家大厂能缺软件测试这一重要职位。相对大学所学专业而言&#…...

【读书笔记】基于世界500强的高薪实战Kubernetes课程

第1章 课程简介&&自我介绍 1-1 自我介绍 1-2 课程大纲内容介绍 1-3 课程更新通知 第2章 K8s必备知识-Docker容器基础入门 2-1 课程介绍 2-2 docker容器介绍 2-3 docker优缺点 2-4 安装和配置docker 2-5 修改内核参数 2-6 配置镜像加速器 2-7 配置常用镜像加…...

【Java 基础篇】Java并发包详解

多线程编程是Java开发中一个重要的方面&#xff0c;它能够提高程序的性能和响应能力。然而&#xff0c;多线程编程也伴随着一系列的挑战&#xff0c;如线程安全、死锁、性能问题等。为了解决这些问题&#xff0c;Java提供了一套强大的并发包。本文将详细介绍Java并发包的各个组…...

MYSQL存储引擎基础知识介绍

下面重点介绍几种常用的存储引擎,并对比各个存储引擎之间的区别&#xff0c;以帮助读者理解 不同存储引擎的使用方式。 MyISAM MyISAM是 MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键&#xff0c;其优势是访 问的速度快&#xff0c;对事务完整性没有要求或者以 SEL…...

vue学习之element-ui组件集成

1. element-ui 链接 https://element.eleme.cn/#/zh-CN 2. element-ui 安装 cnpm install element-ui3. 创建项目 https://blog.csdn.net/qq_36940806/article/details/132921688?spm=1001.2014.3001.5502 4. 引入element库 /src/main.js 引入 element-uiimport Vue from…...

如何通过百度SEO优化提升网站排名(掌握基础概念,实现有效优化)

随着互联网的发展&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;成为了网站优化中不可或缺的一部分。在中国&#xff0c;百度搜索引擎占据着主导地位&#xff0c;因此掌握百度SEO概念和优化技巧对网站的排名和曝光非常重要。 百度SEO排名的6个有效方法&#xff1a; 首…...

Golang 字符串

目录 1. Golang 字符串1.1. 基础概念1.2. 字符串编码1.3. 遍历字符串1.4. 类型转换1.5. 总结1.6. String Concatenation (字符串连接)1.6.1. Using the operator1.6.2. Using the operator1.6.3. Using the Join method1.6.4. Using Sprintf method1.6.5. Using Go string Bu…...

python应用中使用了multiprocessing多进程,使用pyinstaller打包出来的程序可能产生多个窗口

问题现象 我用pyside&#xff08;类似pyqt&#xff09;开发了一个应用程序。直接使用pycharm运行&#xff0c;一切都正常。但当我使用pyinstaller将它打包之后&#xff0c;再去运运行&#xff0c;发现窗口总是产生多个。 问题分析 直接运行没有问题&#xff0c;那么问题肯定…...

数据结构与算法——13.队列的拓展

这篇文章主要讲一下双端队列&#xff0c;优先队列&#xff0c;阻塞队列等队列的拓展内容。 目录 1.队列拓展概述 2.双端队列的链表实现 3.双端队列的数组实现 4.优先队列无序数组实现 5.阻塞队列 6.总结 1.队列拓展概述 首先来看一张图&#xff0c;来大致了解一下他们的…...

机器学习入门教学——损失函数(交叉熵法)

1、前言 我们在训练神经网络时&#xff0c;最常用到的方法就是梯度下降法。在了解梯度下降法前&#xff0c;我们需要了解什么是损失(代价)函数。所谓求的梯度&#xff0c;就是损失函数的梯度。如果不知道什么是梯度下降的&#xff0c;可以看一下这篇文章&#xff1a;机器学习入…...

pytest一些常见的插件

Pytest拥有丰富的插件架构&#xff0c;超过800个以上的外部插件和活跃的社区&#xff0c;在PyPI项目中以“ pytest- *”为标识。 本篇将列举github标星超过两百的一些插件进行实战演示。 插件库地址&#xff1a;http://plugincompat.herokuapp.com/ 1、pytest-html&#xff1…...

基于51单片机多路DTH11温湿度检测控制系统

一、系统方案 1、本设计采用51单片机作为主控器。 2、DHT11采集温度度&#xff0c;支持3路温度度&#xff0c;液晶1602显示。 3、按键设置报警阀值。 4、系统声光报警。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 //初始化LCD*********…...

宝塔重装注意事项

欢迎关注我的公众号&#xff1a;夜说猫&#xff0c;让一个贫穷的程序员不靠打代码也能吃饭~ 前言 宝塔8.0版本&#xff0c;宝塔卸载重装&#xff0c;或者重装Linux系统后重新安装宝塔也适用。 不能上来直接就执行安装宝塔脚本&#xff0c;除非之前没有安装过宝塔。 步骤 1、…...

【MySQL】 MySQL的增删改查(进阶)--壹

文章目录 &#x1f6eb;数据库约束&#x1f334;约束类型&#x1f38b;NOT NULL约束&#x1f38d;UNIQUE&#xff1a;唯一约束&#x1f333;DEFAULT&#xff1a;默认值约束&#x1f384;PRIMARY KEY&#xff1a;主键约束&#x1f340;FOREIGN KEY&#xff1a;外键约束&#x1f…...

Map<K,V>的使用和List学习

Map Map是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。对于静态类型的查找来说&#xff0c;一般直接遍历或者用二分查找【不会对区间进行插入和删除操作】 而在现实生活中的查找比如&#xff1a; 根据姓名查询考试成绩通讯录…...

Flask实现Web服务调用Python程序

Flask实现Web服务调用Python程序_flask调用python程序_小白白程序员的博客-CSDN博客 【小沐学Python】Python实现Web服务器&#xff08;Flask入门&#xff09;_python flask web开发_爱看书的小沐的博客-CSDN博客...

步步为营,如何将GOlang引用库的安全漏洞修干净

文章目录 引场景构建第一步、直接引用的第三方库升级修复策略1.确认是否为直接引用的第三方库2.找到需要升级的版本是否为release版本 第二步、间接引用的第三方库升级修复策略那么问题来了&#xff0c;我们这么间接引用库的对应的直接引用库是哪个呢&#xff1f; &#xff08;…...