SpringBoot+Vue+Nginx+Docker+Compose部署基礎(chǔ)實(shí)現(xiàn)
基礎(chǔ)實(shí)現(xiàn)步驟
- 首先有一個(gè)簡易的服務(wù)器(我是用的阿里云的ECS)
注意:使用云服務(wù)器一定要將使用到的端口加入安全組,使用虛擬機(jī)的話一定要關(guān)閉防火墻!
- 我使用的工具:FinalShell
- 安裝docker
#安裝docker yum install docker #檢查是否安裝成功 docker --version #啟動(dòng)docker systemctl start docker - 安裝docker-compose
#安裝docker-compose sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose #安裝完成后賦予可執(zhí)行權(quán)限 sudo chmod +x /usr/local/bin/docker-compose #檢查是否安裝成功 docker-compose --version - 在springBoot項(xiàng)目中編寫Dockerfile文件
#依賴jdk8環(huán)境的環(huán)境 FROM openjdk:8 #對(duì)外暴露端口 EXPOSE 6666 #復(fù)制wlsyxh.jar到docker容器中并命名為app.jar ADD wlsyxh.jar app.jar #執(zhí)行命令 RUN bash -c 'touch /app.jar' #啟動(dòng)命令,并指定啟動(dòng)的環(huán)境 ENTRYPOINT ["java", "-jar", "/app.jar", "--spring.profiles.active=test"]
- 在springBoot項(xiàng)目中編寫docker-compose.yml文件
version: "1" #版本 services: #要使用到的鏡像 nginx: # 服務(wù)名稱,用戶自定義 image: nginx:latest # 鏡像版本 ports: - 80:80 # 暴露端口 volumes: # 掛載 - /root/nginx/html:/usr/share/nginx/html - /root/nginx/nginx.conf:/etc/nginx/nginx.conf - /home/ftp/root:/var/local #這里是nginx讀取ftp服務(wù)器中的文件地址掛載 privileged: true # 這個(gè)必須要,解決nginx的文件調(diào)用的權(quán)限問題 mysql: image: mysql:5.7.27 ports: - 3306:3306 environment: # 指定用戶root的密碼 - MYSQL_ROOT_PASSWORD=admin redis: image: redis:latest minio: image: minio/minio wlsyxh: image: wlsyxh:latest build: . # 表示以當(dāng)前目錄下的Dockerfile開始構(gòu)建鏡像 ports: - 6666:6666 depends_on: # 依賴與mysql、redis,其實(shí)可以不填,默認(rèn)已經(jīng)表示可以 - mysql - redis - 修改springBoot項(xiàng)目的配置文件【將配置文件中使用的mysql、redis、minio等的地址改成docker-compose文件中的服務(wù)名稱,以及數(shù)據(jù)庫的登錄密碼】

- 在桌面建一個(gè)文件夾
①將剛剛添加的Dockerfile、docker-compose.yml文件復(fù)制到文件夾中
②將springBoot項(xiàng)目打包,并將打好的的jar包復(fù)制到文件夾中
③導(dǎo)出數(shù)據(jù)庫的sql文件,放入到文件夾中
- 在FinalShell工具中在宿主機(jī)的root目錄下新建一個(gè)文件夾,并將docker-compose.yml、Dockerfile、jar包拖進(jìn)這個(gè)文件夾

- 在宿主機(jī)的/root/nginx目錄下創(chuàng)建html文件夾和nginx.conf文件

- 編寫nginx.conf文件
user root;#解決訪問ftp服務(wù)器文件403的問題 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; charset utf-8; server_name xxx.xxx.xxx.xxx; #宿主機(jī)地址 location / { root /usr/share/nginx/html/dist;#前端項(xiàng)目打包后存放的地址 try_files $uri $uri/ /dist/index.html; index index.html index.htm; error_page 405 =200 $request_uri; } location /api { proxy_pass http://xxx.xxx.xxx.xxx:6666; proxy_set_header Host $host; proxy_redirect default; rewrite ^/api/(.*) /$1 break; } location /ftp/ { alias /var/local/root/webpages/;#ftp服務(wù)器中的文件映射nginx中的位置【前提是要在nginx的掛載那里要掛載該目錄】 autoindex on; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } - 前端項(xiàng)目打包
vue項(xiàng)目使用npm run build 或者使用packeage.json文件中的命令

將打包好的dist文件夾下的所有文件復(fù)制到宿主機(jī)中創(chuàng)建的html文件夾中
- 部署項(xiàng)目
輸入編排命令安裝和啟動(dòng)服務(wù)docker-compose up -d啟動(dòng)成功后就可以用數(shù)據(jù)庫工具去連接遠(yuǎn)程的mysql服務(wù),連接成功后并創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)庫,并運(yùn)行桌面文件夾中的sql文件導(dǎo)入數(shù)據(jù)和結(jié)構(gòu)。
此時(shí)的后端項(xiàng)目【jar包】和nginx都已經(jīng)啟動(dòng)成功了,可以使用以下命令查看docker中正在運(yùn)行的容器信息docker ps
至此,我們docker+nginx的前后端部署就完成了!
在網(wǎng)站中輸入服務(wù)器的ip就可以訪問了
本文來自博客園,作者:wfxx,轉(zhuǎn)載請(qǐng)注明原文鏈接:http://www.rzrgm.cn/wufaxiang/articles/17286389.html

浙公網(wǎng)安備 33010602011771號(hào)