一行命令部署奧斯丁
這一年干的很多事都是為了降低我的開源項目消息推送平臺austin使用門檻
1、將很多強依賴的中間件改為弱依賴,目前只需要MySQL和Redis就能使用austin核心的功能了。代碼拉下來,只需要改下MySQL和Redis的ip和port就能正常啟動
2、渠道賬號的信息用MySQL管理,不再寫在配置文件上(拋棄分布式配置中心和本地配置管理渠道賬號的信息)
3、前端的功能持續(xù)完善中,模板的占位符可任意傳遞,測試功能變得更加友好...
今天想跟大家聊的是austin的部署體驗問題,很多人可能MySQL和Redis都不想手動裝,就想把項目給啟動起來體驗下,看看能干些什么。我想了一下,要想達到這個效果,那現(xiàn)在應該docker-compose部署是比較合適的了。
但由于現(xiàn)在austin還在持續(xù)更新,近期應該還沒有一個穩(wěn)定的版本,所以目前我是基于”源碼打包“的方式去做的。為了講解這個過程,我把我的服務器給重裝下,讓大家感受下。
所需的必要依賴
基于系統(tǒng):Centos 7.6 x86_64
1、JDK 1.8
2、Maven
3、Git
4、docker
5、docker-compose
6、npm(前端依賴)
這些必要的依賴,一般開發(fā)機器上都會有的把?什么?還沒有?那我只能把服務器給重裝一遍,手把手帶著大家來一遍吧。
JDK8 安裝
查看可以裝的JDK版本:
yum?search?java|grep?jdk
下載JDK 1.8
(安裝目錄在:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64)
(默認只有JRE)
yum?install?java-1.8.0-openjdk.x86_64
為了后續(xù)安裝Maven,所以要把JDK也安裝上:
yum?install?java-1.8.0-openjdk-devel.x86_64
設置環(huán)境變量
vi?/etc/profile
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export?JAVA_HOME?JRE_HOME?CLASS_PATH?PATH
source?/etc/profile
查看是否安裝成功:
java?-version

安裝Git
直接使用yum安裝:
yum?install?git
查看是否成功:
git

安裝Maven
直接使用wget安裝:
wget?https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz?--no-check-certificate
解壓安裝得到的maven
tar?-zxvf?apache-maven-3.6.3-bin.tar.gz
配置環(huán)境變量:
(我的安裝目錄就在/usr/local/maven/apache-maven-3.6.1)
vi?/etc/profile
MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1
export?PATH=${MAVEN_HOME}/bin:${PATH}
source?/etc/profile
查看是否安裝成功:
mvn?-v

順帶把maven的鏡像也改掉吧,不然官方默認的下載很慢:
(我的安裝目錄就在/usr/local/maven/apache-maven-3.6.1)
vim?/root/apache-maven-3.6.3/conf/settings.xml
加入鏡像配置:
<mirror>
??<id>alimaven</id>
??<name>aliyun?maven</name>
??<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
??<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
??<id>maven-default-http-blocker</id>
??<mirrorOf>external:http:*</mirrorOf>
??<name>Pseudo?repository?to?mirror?external?repositories?initially?using?HTTP.</name>
??<url>http://0.0.0.0/</url>
??<blocked>true</blocked>
</mirror>
安裝Docker
首先我們需要安裝GCC相關的環(huán)境:
yum?-y?install?gcc
yum?-y?install?gcc-c++
安裝Docker需要的依賴軟件包:
yum?install?-y?yum-utils?device-mapper-persistent-data?lvm2
設置國內(nèi)的鏡像(提高速度)
yum-config-manager?--add-repo?http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum軟件包索引:
yum?makecache?fast
安裝DOCKER CE(注意:Docker分為CE版和EE版,一般我們用CE版就夠用了.)
yum?-y?install?docker-ce
啟動Docker:
systemctl?start?docker
下載回來的Docker版本::
docker?version

運行以下命令以下載 Docker Compose 的當前穩(wěn)定版本:
sudo?curl?-L?"https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname?-s)-$(uname?-m)"?-o?/usr/local/bin/docker-compose
將可執(zhí)行權限應用于二進制文件:
sudo?chmod?+x?/usr/local/bin/docker-compose
創(chuàng)建軟鏈:
sudo?ln?-s?/usr/local/bin/docker-compose?/usr/bin/docker-compose
測試是否安裝成功:
docker-compose?--version

安裝npm
下載npm包:
wget?https://npm.taobao.org/mirrors/node/v10.14.1/node-v10.14.1-linux-x64.tar.gz
解壓:
tar?-xvf??node-v10.14.1-linux-x64.tar.gz
添加環(huán)境變量:
(我的安裝目錄在:/root/node-v10.14.1-linux-x64)
vi?/etc/profile
export?NODE_HOME=/root/node-v10.14.1-linux-x64
export?PATH=$NODE_HOME/bin:$PATH
source?/etc/profile
看看安裝成功了沒有:
node?-v

docker-compose 啟動austin
先新建一個文件夾存放austin的項目吧:
mkdir?3y
進入到文件夾中:
cd?3y
克隆austin后端的代碼:
git?clone?https://gitee.com/zhongfucheng/austin.git
克隆austin前端的代碼:
git?clone?https://gitee.com/zhongfucheng/austin-admin.git
進入到austin后端的項目里:
cd?austin/
用mvn命令打包
mvn?clean?package?
經(jīng)過一頓的包依賴下載之后,我們就能看到打包已經(jīng)成功了

到這,我們就可以使用docker-compose來啟動Austin:
docker-compose?up?--build

啟動前端austin-admin
去到austin-admin的目錄下
cd?/root/3y/austin-admin
安裝必要的依賴:
npm?i

把后端的請求鏈接改為自己的地址:
vim?index.html

改完之后,直接啟動:
npm?start

(如果端口3000已經(jīng)存在了,可以修改 server.js的配置)

驗證功能有無問題
我們就以郵件為例,先建個郵件賬號:

建個消息模板:

點個測試按鈕看看后端的日志是否正常:


后話
看著文章的內(nèi)容很多,實際上當我們擁有了這些開發(fā)環(huán)境了之后,部署只是一行簡單的docker-compose命令,要實現(xiàn)這個玩意依賴的就倆個文件:docker-compose.yml和Dockerfile
這兩個文件寫起來倒是簡單,事后看完也覺得簡單,但是中途還是遇到了不少的坑的。至于坑嘛,這玩意還是得自己一步一步踩才有意思,我即便寫了,你沒遇到也不會有啥感受的。
有了現(xiàn)在這個環(huán)境了以后,后面等我更新內(nèi)容,你們就可以直接pull下最新的代碼,編譯打包一下,用docker-compose啟動就完事啦。
這幾天,我還在努力更新中。我想做一下austin演示,然后把在線地址放在Git倉庫,但這前提最好是得有登錄注冊的功能(這樣就各自只能看到自己的內(nèi)容)。初步的想法是:掃碼關注服務號,拿到用戶的信息,然后才能建模板和賬號
要是對這塊感興趣的可以關注后續(xù)的更新喲!
如果想學Java項目的,我還是強烈推薦我的開源項目消息推送平臺Austin,可以用作畢業(yè)設計,可以用作校招,可以看看生產(chǎn)環(huán)境是怎么推送消息的。
倉庫地址(可點擊閱讀原文跳轉(zhuǎn)):https://gitee.com/zhongfucheng/austin
我開通了 股東服務 內(nèi)容,感興趣可以點擊下方看看,主要針對的是項目喲
