小迪课堂

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 一个让程序员在线学习的视频网站

个人简介

本人是一名大二的软件工程专业的学生,经过二年对关于软件和网站开发相关技术的学习,终于在今天开发出了自己的第一个作品-小迪课堂,小迪课堂是一个供向我这样对开发充满热爱的同学们学习的视频网站,让热爱学习开发技术的同学不用在到处找资源,在本网站就能得到高质量的学习资源!


网站简介

相关技术

本网站是基于springboot的后端框架和vue作为前端框架开发的,前端用到的组件库是cube-ui,适配于手机端的ui组件库.

用到的相关技术:

后端

  • springboot+mybatis+spring+guava+mysql+jwt

前端

  • vue+cube-ui+vue-route+vue-cli脚手架等

开发模式

采用的是前后端分离的开发模式,用封装ajax的axios框架来发送http请求,后端提供数据接口服务供前端调用在页面进行展示,前后端基于JSON进行数据的传输.


部署方式

本项目是用docker容器技术来进行下部署的.


  1. 首先将后端项目配置好以后,用maven插件将后端springboot项目打包成jar包

image.png


  1. 然后通过xshell这个ssh连接工具连接阿里云服务器,填写云服务的公网ip和开放22端口即可连接上云服务器,如下图连接成功.

image.png

  1. 将打包好的jar文件上传到云服务器上,这里是采用xftp工具来进行文件上传的,然后下载java8的docker镜像:docker pull java:8,编写Dockerfile文件将java8和上传的jar文件制作为一个新镜像:
from java:8
MAINTAINER zhangpeihong
VOLUME /tmp
ADD docker-test-0.0.1-SNAPSHOT.jar zhang_docker.jar
RUN bash -c 'touch /zhang_docker.jar'
ENTRYPOINT ["java","-jar","/zhang_docker.jar"]
expose 6001
  1. 拉取mysql镜像和nginx镜像

在此之前将前端打包成dist目录上传到云服务器,并配置nginx.conf文件,将dist目录上传到nginx容器中,可以通过容器卷的技术来是实现.

同时运行mysql镜像,将项目需要的数据导入到mysql数据库中


  1. 编写docker-compose.yml文件

    上面的步骤都准备好以后,我们就可以编写docker-compose.yml,进行服务编排,让上面的镜像一键启动这些容器实例即可,最后我们就可以访问nginx服务器来访问我们的项目了,最重要的是我们一定要在阿里云服务器的安全组配置入站规则,一定要开放项目中所需要的端口.


  1. 上面的步骤经过之后让我们来看看项目部署上线的效果

QQ图片20221025165453.jpg

这是我通过手机访问网站得到的效果图,这样看的话,手机适配还是挺好看的!

感谢词

在这里非常感谢阿里云提供的云服务器,让我们在校大学生,能把自己开发的项目部署到公网中,这次的实践经历让我检验了自己docker部署项目的技术,也学习到了如何将自己开发的项目部署到了云端,这是一个很好的经历,让我对开发有了更加浓厚的兴趣,通过这个项目让自己对一个项目从开发-测试-部署这一套流程有很大的了解,了解市面上公司的基本开发流程.



相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
jenkins Java Shell
使用 Docker 安装 Jenkins 并实现项目自动化部署
Jenkins 是一款开源的持续集成(DI)工具,广泛用于项目开发,能提供自动构建,测试,部署等功能。作为领先的开源自动化服务器,Jenkins 提供了数百个插件来支持构建、部署和自动化任何项目。
35097 3
使用 Docker 安装 Jenkins 并实现项目自动化部署
|
安全 网络协议 测试技术
安全测试工具之nmap使用指南
【2月更文挑战第7天】安全测试工具之nmap使用指南
700 4
安全测试工具之nmap使用指南
|
监控 安全 网络安全
初探rce中的无参数rce
无参数RCE虽然不常见,但其隐蔽性和潜在的破坏性使得它成为一种特别危险的安全威胁。防御这类攻击要求开发者和系统管理员具备深刻的安全意识和综合的安全策略。通过持续的安全培训、审计以及运用行业最佳实践,可以有效降低这类风险。安全是一个持续的过程,而不是一次性任务,面对日益复杂的安全威胁,持续的努力和关注是保障数字资产安全的关键。
144 1
|
安全 IDE Java
使用MapStruct和Lombok简化代码
使用MapStruct和Lombok简化代码
380 2
|
安全 测试技术 网络安全
D盾防火墙安全防护绕过-[文件上传]
D盾防火墙安全防护绕过-[文件上传]
1002 0
|
机器学习/深度学习 数据采集 数据挖掘
智能决策新引擎:Python+Scikit-learn,打造高效数据分析与机器学习解决方案!
【7月更文挑战第26天】在数据驱动时代,企业需从大数据中提取价值以精准决策。Python凭借丰富的库成为数据分析利器,而Scikit-learn作为核心工具备受青睐。本文通过电商案例展示如何预测潜在买家以实施精准营销。首先进行数据预处理,包括清洗、特征选择与转换;接着采用逻辑回归模型进行训练与预测;最后评估模型并优化。此方案显著提升了营销效率和企业决策能力,预示着智能决策系统的广阔前景。
259 2
|
开发框架 Java .NET
御剑后台扫描工具下载
御剑后台扫描工具下载
1153 0
|
Python
百度搜索:蓝易云【Debian pip 错误 error: externally-managed-environment 解决方法】
通过上述方法,你应该能够解决 "error: externally-managed-environment" 错误并成功使用 pip 安装包。
1116 0
|
Dart JavaScript 前端开发
一个写了3年半flutter的小伙,突然写了2个月uniapp的感悟!
因为某些原因,在过去的三年半时间,我除了flutter之外,很少接触其他的框架,而最近突然写了2个月uniapp,有了些想法...
|
JavaScript
Nodejs中process.cwd()与__dirname的区别
首先,上官方解释。 => process.cwd(): The process.cwd() method returns the current working directory of theNode.js process. 上面的意思就是,process.cwd()返回的是当前Node.js进程执行时的工作目录。
4459 0