手把手教你Docker部署若依專案 整合

2021-10-22 09:55:27 字數 4570 閱讀 4325

四、啟動測試

五、結語

相關鏈結

當我們將若依專案的前端和後端都製作成映象後,我們就開始整合。實現真正的一鍵部署。文末有相關連線

這裡我們採用的是前後分離的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 up可以完整啟動我們的後端服務,現在問題就是我們的前端服務怎麼加進來?我們在docker-compose.yml中新增即可,但是我們在nginx配置**ip是127.0.0.1,現在又要怎麼才能訪問我們的介面呢?我們一點一點來。

之前的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

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...