dreamer-cms docker复现
- 前言
- 一,赛题复现
- 二,人生第一个jar包
- 1 ubuntu本地复现
- (1)创建文件夹
- (2)解压资源
- (3)安装并导入数据库
- (4)使用idea自动化部署
- (5)打包并本地测试
- 2 docker环境
- 三,总结
前言
在开始文章之前,简要介绍一下本文的创作伊始。很久很久以前,某个地市举办了一场2023红明谷杯,那里高手云集,大佬遍布…算了编不下去了,讲正事,主要是因为想要学习jar包搭建java网站,刚好借着这个契机,复现赛题的时候顺便把镜像给做了。
一,赛题复现
题目很简单,就放一张图片意思一下。奇安信也有原文,一搜就看得到。
二,人生第一个jar包
cms下载:dreamer-cms
版本是dreamer_cms-Previous_Releases_4.0.1
总体思路:本地ubuntu18复现,设置好路径,打jar包,然后起一个docker镜像,一切还原成和本地一样的。
1 ubuntu本地复现
参照前人复现时给出的经验,在ubuntu上本地复现难度并不大,我这里就将自己的操作流程复述一遍。
(1)创建文件夹
cd /opt
mkdir programs
mkdir resources
(2)解压资源
(备注:dreamer-cms.zip和dreamer-cms.sql在网站项目的resources/db下面)
将dreamer-cms.zip解压,里面的文件全部上传到opt/resources/itechyou.cn下(没有itechyou.cn这个路径就创建一个)
(3)安装并导入数据库
dreamer-cms依赖mysql和redis两个数据库,他们的安装就不赘述了,很简单的两条命令。
apt install redis-server
apt install mysql
不过有两个个坑要讲一下
一个是mysql安装后默认没有开启加密模式,一个是高版本的mysql在终端中登录不能出现密码。具体可以参考下面的文章。
linux解决mysql用任何密码都能登录
然后进入mysql,
source /home/daydream/Desktop/dreamer-cms.sql
导入数据库文件即可。
(4)使用idea自动化部署
解压整个项目后,选择信任,修改yml文件
application.yml不需要修改
修改application-dev.yml如下
修改application-prd.yml如下
右键maven重新加载项目。
这里说明一下,因为idea自动化部署是下载来自国外的资源,有看到其他博主说搞什么maven资源目录的配置,劝我们不要使用自带的,太慢了。我想说的是,身为初学者,搞那么复杂干嘛,直接给idea配个vpn的代理不就行了,2分钟内必定下完资源。
这年头不会还有人不会给idea配代理吧——这个就不细说了,网上一抓一大把。
然后可以看到如下结果
接着,你就可以编译并执行了,本地就启动了它。不过这不算完,接下来,我们来打jar包。
(5)打包并本地测试
右键package,执行构建
将打好的Jar包会生成在target目录下面,将它上传到/opt/programs/目录下。
java -jar dreamer-cms.jar就可以了(logs是运行生成的结果)。
至此,本地就搭建好了。
2 docker环境
使用eclipse/ubuntu_jdk8:latest这个镜像,它自带ssh,修改ssh_config,permitrootlogin yes。
然后
apt update
apt install redis-server
apt install mysql
service redis-server start
service mysql start
至此docker容器基础环境就配好了,下面是端口情况(因为当时映射成了80,所以重新commit了个镜像,然后启的容器,所以你看到的IMAGE不是eclipse/ubuntu_jdk8:latest)
和本地搭建一模一样的方式,还原数据库——>创建opt下的文件目录——>上传dream-cms内的文件——>上传打好的jar包——>java -jar xxx.jar
commit一下这个容器,获得镜像
收工!
三,总结
文章虽短,跨度较长,记的上一次参与红明谷还是在上一次。可能打个jar包对于很多大佬们来说就是动动手指头的事,但对我来说,是个比较有意义的时刻,他证明了我在没有经历任何java系统性课程(大四四年学校都莫得java主修课)下的自学成果。
java -jar dream-cms.jar成功的那一刻高兴得像个孩子一样,转头来写这篇文章的时候才发现原来这个东西并不难,也就是没多花点时间去玩罢了。