自我介绍
我是信息管理与信息系统专业三年级学生。该专业在我校是和计算机、软件工程专业一个学院的,所以我们专业的培养计划中也包括了许多有关开发的课程。如 Java&JavaEE、数据库、数据分析与可视化、Unix等等。
了解到飞天加速计划的契机是在这学期开的Unix课和管理信息系统课上。虽然我在二年级的时候就已经用微软推出的WSL2来接触Linux系统和Docker,但毕竟是在宿主机上,我不怎么敢乱折腾它。直到Unix的授课老师在课上提到阿里云的服务器有对学生优惠之后,我才登上官网来一探究竟。这才接触到了这个计划。
使用攻略
由于我在WSL2上接触过Linux系统(Ubuntu),所以上手起来并没有我想象中的那般困难。遇到的唯一一个问题就是当我试图用Docker在服务器上部署我的应用的时候被服务器的防火墙拦截导致我无法通过指定的端口访问服务器资源。好在阿里云的生态较为良好,有很多人在论坛中分享自己的开发经验或是写一些教学博客。简单的几次查找之后我就找到了一篇与我遇到的问题相似的博客。操作如下所示:
收获总结
在申请了服务器之后,我结合课内的作业(springboot+vue的前后端分离项目)和Docker,在服务器上部署了我自己的应用。
这是首页
同时这也是我第一次使用Docker-compose来管理容器。不得不说这一过程对我来说都是未曾尝试过的。从编写Dockerfile到单独测试容器到编写docker-compose.yml再到部署。每一个环节我都必须查阅大量的资料并进行尝试。在编写Dockerfile分别为前后端打包的时候,我参考了现成的手脚架——jeecg-boot中的Dockerfile。在其中稍作修改——为了减少镜像的大小、重新指定Nginx的代理网络等等。最后才传到DockerHub上等待服务器端拉取。
DockerHub上的后端镜像
完成了项目的打包之后我便要开始着手尝试用Docker-compose来管理三个镜像(包括之后要用的数据库)。
我在参照了官方给出的一些实例之后成功的写出了一个可以成功部署的docker-compose.yml。内容如下
version: '2.2'
services:
mysql:
image: mysql:5.7
container_name: mysql
volumes:
- E:\Database\Mysql:/var/lib/mysql/
networks:
alita:
ipv4_address: 172.1.0.10
ports:
- "3306:3306"
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max_connections=3000
environment:
MYSQL_ROOT_PASSWORD: 123456
TZ: Asia/Shanghai
backend:
image: intellinan/mis-java:1.0
container_name: Jmis
ports:
- "9200:9200"
networks:
alita:
ipv4_address: 172.1.0.20
front:
image: intellinan/mis-vue:1.0
container_name: Vmis
ports:
- "8080:80"
networks:
alita:
ipv4_address: 172.1.0.30
networks:
alita:
external: true
最后在依照教程解决了服务器防护墙的问题之后我终于能访问部署后的应用,一时间激动与欣喜涌上心头——仔细想来,如果没有这个飞天计划,我不会去尝试”新技术“,更不会收获如此纯粹的愉悦!
倘若能申请成功的话,我希望将我的个人博客也放到服务器上。 这是我个人博客的现链接:个人博客
作品
在此贴出的作品便是我在上文中提到的部署在服务器上的服务——这是一个非常简单的服务。
这是一个简单的前后端交互