四、啟動測試
五、結語
相關鏈結
當我們將若依專案的前端和後端都製作成映象後,我們就開始整合。實現真正的一鍵部署。文末有相關連線這裡我們採用的是前後分離的ruoyi-vue專案,所以我們要分別製作
後端docker映象
和前端docker映象
。
後端服務,該專案主要是springboot專案,其中依賴了mysql和redis兩個服務,也就是我們需要啟動redis和mysql兩個映象,然後將springboot專案製作成映象,連線到mysq和redis即可。
前端專案,我們手動將ruoyi-ui
這個專案打包成dist檔案,然後基於nginx映象做乙個映象,將該dist檔案新增到映象裡面,再配置下埠**即可。
最終通過docker-compose.yml
將所有的服務進行整合實現真正的一鍵部署
我們先簡單彙總下我們現在有什麼東西。
ruoyiweb映象(基於nginx的,ruoyi-ui的dist檔案)
ruoyimysql映象(基於mysql,初始化建表語句)
docker-compose.yml檔案(定義了後端服務的啟動邏輯)
我們使用之前的docker-compose.yml檔案docker-compose up
可以完整啟動我們的後端服務,現在問題就是我們的前端服務怎麼加進來?我們在docker-compose.yml
中新增即可,但是我們在nginx配置**ip是127.0.0.1
,現在又要怎麼才能訪問我們的介面呢?我們一點一點來。
version
:"3.8"
services
:# mysql服務
mysql
:image
: ruoyimysql
volumes
:- ./mysql:/var/lib/mysql
restart
: always
container_name
: ruoyi-mysql
ports
:- 3306:
3306
environment
:- mysql_root_password=songweiwei
- mysql_database=ry-vue
- mysql_user=ruoyi
- mysql_password=ruoyi
# redis服務
redis
:image
: library/redis:alpine
container_name
: ruoyi-redis
ports
:- 6379:
6379
# 給redis設定密碼
command
: redis-server -
-requirepass songweiwei -
volumes
:- ./redis/data:/data
# 構建若依後端
:# 映象** 自己構建的
image
container_name
# 對外暴露埠 8080
ports
:- 8080:
8080
# 後端專案需要的配置,可修改
environment
:- redis_host=redis
- redis_port=6379
- redis_database=0
- redis_password=songweiwei
- mysql_host=mysql
- mysql_port=3306
- mysql_database=ry-vue
- mysql_username=ruoyi
- mysql_password=ruoyi
depends_on
:- redis
- mysql
links
:- redis
- mysql
配置ruoyiweb的服務version
:"3.8"
services
:ruoyi-web
:image
: ruoyiweb
ports
:- 8088:
80depends_on
:
這樣啟動的話,缺省會讀取我們在ruoyiweb
這個映象裡面的nginx配置檔案(製作映象時候copy進去的),那時候**的ip是127.0.0.1,我們需要修改當時的nginx配置。
這兩種做法各有利弊,第一種比較靈活,我們還可以單獨配置若依後端服務的埠
,第二種的話不用返工了,更加符合一鍵部署
,但是如果後端服務埠變化了,只能使用第一種了。
這裡我就採用第一種方式,直接目錄掛載,修改nginx配置,覆蓋ruoyiweb映象的nginx配置,我們在/ruoyi/nginx目錄建立de****t.conf檔案,內容為如下:
server
location /prod-api/
}
最終docker-compose.yml檔案version
:"3.8"
services
:# mysql服務
mysql
:image
: ruoyimysql
volumes
:- ./mysql:/var/lib/mysql
restart
: always
container_name
: ruoyi-mysql
ports
:- 3306:
3306
environment
:- mysql_root_password=songweiwei
- mysql_database=ry-vue
- mysql_user=ruoyi
- mysql_password=ruoyi
# redis服務
redis
:image
: library/redis:alpine
container_name
: ruoyi-redis
ports
:- 6379:
6379
# 給redis設定密碼
command
: redis-server -
-requirepass songweiwei -
volumes
:- ./redis/data:/data
# 構建若依後端
:# 映象** 自己構建的
image
# build值為 . 表示從當前目錄找dockerfile進行構建
build
: . container_name
# 對外暴露埠 8080
ports
:- 8080:
8080
# 後端專案需要的配置,可修改
environment
:- redis_host=redis
- redis_port=6379
- redis_database=0
- redis_password=songweiwei
- mysql_host=mysql
- mysql_port=3306
- mysql_database=ry-vue
- mysql_username=ruoyi
- mysql_password=ruoyi
depends_on
:- redis
- mysql
links
:- redis
- mysql
# 構建若依前端
ruoyiweb
:image
: ruoyiweb
container_name
: ruoyi-web
ports
:- 8088:
80volumes
:- /ruoyi/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on
: links
:
當前目錄結構
├── docker-compose.yml
└── nginx
└── default.conf
使用docker-compose up -d
啟動
瀏覽器訪問 (出現驗證碼就表示成功,驗證碼是後端返回的)
手把手教你 Docker安裝寶塔面板
docker pull centosdocker run i t d restart always privileged true name baota p 9020 20 p 9021 21 p 9080 80 p 9443 443 p 9888 888 p 9999 8888 v home ww...
手把手教你OA選型
oa選型永遠是oa行業的重要焦點,在選型問題上困擾了很多客戶,雲全oa從這幾個方面教你如何選型。了解研發技術 技術是硬道理。只有過關的技術才會研發出過硬的產品。如果技術不過關,後期將會帶來一系列的問題。同時需要考慮技術的先進性。在現如今社會發展日新月異,今天還遙遙領先的管理模式也許明天就會被淘汰。所...
手把手教你玩轉git
使用以上來寫git命令。mkdir xx 建立乙個空目錄 xx指目錄名 pwd 顯示當前目錄的路徑。git init 把當前的目錄變成可以管理的git倉庫,生成隱藏.git檔案。git add xx 把xx檔案新增到暫存區去。git commit m xx 提交檔案 m 後面的是注釋。git sta...