前言
描述:本文主要是用來記錄 如何用標題上的技術,部署到云服務器上通過ip正常訪問。
一、總覽
1.1、Docker做的事
- 拉取 mysql 鏡像
- 拉取 redis 鏡像
- 拉取 jdk 鏡像
- 拉取 nginx 鏡像
解釋說明:前端項目的打包文件放在 nginx容器運行。后端的jar包放在jdk容器運行。另外兩個是后端項目需要用到的數(shù)據(jù)庫。
1.2、Jenkins做的事
解釋說明:去 Gitee倉庫拉取源代碼,自動化構建、打包、部署到云服務器上運行。
二、Docker 實戰(zhàn)
2.1 拉取 mysql 鏡像
命令如下所示:
# 拉取鏡像
docker pull mysql:8.0
# 啟動命令
docker run -p 3306:3306 --name mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=000000 -d mysql:8.0
通過遠程連接工具,測試mysql是否創(chuàng)建成功,然后創(chuàng)建數(shù)據(jù)庫,導入數(shù)據(jù)表。
需要在后端的 ruoyi-admin模塊的某個配置文件內,修改相關配置,包括url、端口號、賬戶、密碼。
2.2 拉取 redis 鏡像
命令如下所示:
# 拉取鏡像
docker pull redis
2.2.1 配置文件
(1)創(chuàng)建目錄
mkdir -p /docker/redis
mkdir -p /docker/redis/data
touch /docker/redis/redis.conf
touch /docker/redis/redis.bash
(2)編輯配置文件 vim /docker/redis/redis.conf
# Redis默認不是以守護進程的方式運行,可以通過該配置項修改,使用yes啟用守護進程
daemonize no
# 指定Redis監(jiān)聽端口,默認端口為6379
port 6379
# 綁定的主機地址,不要綁定容器的本地127.0.0.1地址,因為這樣就無法在容器外部訪問
bind 0.0.0.0
#需要密碼則打開
requirepass 000000
# 持久化
appendonly yes
(3)編輯bash文件 - vi /docker/redis/redis.bash
docker run -p 6379:6379 --name redis -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf
(4)開放執(zhí)行權限
chmod 777 /docker/redis/redis.bash
(5)修改代碼配置文件
需要在后端的 ruoyi-admin模塊的某個配置文件內,修改相關配置,包括url、端口號、賬戶、密碼。
2.3 拉取 jdk 鏡像
# 拉取 jdk 鏡像
docker pull kdvolder/jdk8
(2)前提:需要把jar包放在 /root/ruoyi-admin/target
目錄下(可自定義->配合啟動命令即可)
(3)編輯bash文件 - vi /docker/ruoyi-admin/ruoyi-admin.bash
docker stop ruoyi-admin;docker rm ruoyi-admin;docker run -d --restart=always -v /root/ruoyi-admin/target:/jar -v /home/ruoyi/logs:/home/ruoyi/logs -p 8080:8080 --name ruoyi-admin kdvolder/jdk8 /usr/bin/java -jar -Duser.timezone=GMT+08 /jar/ruoyi-admin.jar
(4)開放執(zhí)行權限
chmod 777 /docker/ruoyi-admin/ruoyi-admin.bash
(5)執(zhí)行命令
/docker/ruoyi-admin/ruoyi-admin.bash
2.4 拉取 nginx 鏡像
# 拉取鏡像
docker pull nginx
(2)創(chuàng)建bash文件- vi /docker/ruoyi-ui/ruoyi-ui.bash
cp -rf /root/nginx/* /mydata/nginx/html;docker stop ruoyi-ui;docker rm ruoyi-ui;docker run -d --privileged=true --name ruoyi-ui -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/nginx.conf:/etc/nginx/nginx.conf -p 80:80 nginx
解釋:為什么要先復制一下文件,因為Jenkins那邊構建好了,傳送文件過來就是/root目錄下,所以本人給它復制到我規(guī)定的目錄下。
(3)創(chuàng)建配置文件
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
解釋:需要注意 root /usr/share/nginx/html;
配置,需要對應啟動命令里面容器內部存放的實際路徑。本人因為設置成外部路徑,然后通過ip訪問遇到500 Internal Server Error
的錯誤。
二、Jenkins 實戰(zhàn)
實驗環(huán)境:Windows 安裝的 Jenkins 安裝包
啟動命令:在安裝包所在目錄下:java -jar jenkins.war
啟動,通過端口號訪問。具體的使用方法不在此文贅述。
描述:本次實驗中沒有用到流水線,通過安裝插件,后端創(chuàng)建 maven 的項目 ,前端創(chuàng)建 freeStyle project。
2.1 安裝的插件如下所示:
- Maven Integration plugin
- 描述:主要是后端構建用到
- Publish Over SSH
- 描述:推送文件到遠程服務器
- NodeJS Plugin
- 描述:主要是前端構建需要用到
(1)安裝完Publish Over SSH
插件后,需要在 Manage Jenkins-> Jenkins下面配置遠程服務器的信息
(2)安裝完 NodeJS Plugin
以后,需要在 Manage Jenkins->Tools 配置 windows實際安裝的 node路徑即可。(順便把 Maven 的安裝路徑也配置一下)
2.2 構建后端
構建一個 maven 項目即可。
2.2.1 填寫源碼倉庫信息
解釋:第二個框指的是 gitee 上面的倉庫地址。
2.2.2 Post Steps設置
(1)勾選 SSH 設置
(2)填寫包路徑配置信息
描述:
- 第一個配置是選擇jenkins系統(tǒng)配置的ssh服務器
- 第二個指 后端項目打包后的路徑和文件
- 第三個指 遠程服務器 執(zhí)行的命令
(3)保存以后,構建即可。
聲明:如果構建失敗,有可能是配置出問題,這個需要自己排查了。本文主要記錄個大概思路,也許會漏掉一些細節(jié),導致最后實驗失敗。
(4)如果構建成功,檢查云服務器的docker容器是否啟動。瀏覽器訪問路徑ip:port
,即可。
2.3 構建前端
(1)創(chuàng)建一個 freestyle project 項目。
(2)配置源碼管理,如上面后端所示:
(3)構建環(huán)境,勾選Provide Node & npm bin/ folder to PATH
,需要安裝上面的插件,才會有這個選項
(4)Build Steps:由于我是windows環(huán)境,這里需要新增 Execute Windows batch command
,在方框下輸入構建命令 npm install --registry=https://registry.npmmirror.com & npm run build:stage
,如下圖所示:
(5)構建后操作:配置ssh服務器以及相關命令
需要新增勾選 Send build artifacts over SSH
,配置信息如下圖所示:
解釋:主要是告訴它,構建后的目錄是什么,需要過濾掉 dist目錄,以及最后存放在遠程服務器的nginx目錄下,最后發(fā)送完文件后,執(zhí)行 bash腳本命令。
(6)保存后,點擊Build Now
即可。測試路徑是IP:Port
即可,前端一般是默認80端口,用ip訪問即可。
當很重要的是在前端代碼里面,需要把ip改成后端實際服務的ip。
提示:更改文件是 .env.staging
文件的 VUE_APP_BASE_API = 'IP:Port'
。文章來源:http://www.zghlxwxcb.cn/news/detail-731041.html
總結
整個構建過程大概就是這樣。全部完成以后,就可以通過jenkins完成一整套的流程了。文章來源地址http://www.zghlxwxcb.cn/news/detail-731041.html
到了這里,關于Jenkins+Gitee+Docker+Ruoyi項目前后端分離部署的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!