前言
前端打包的dist文件在宿主機,nginx運行在docker-compose
問題
nginx.conf 在本地配置可以生效,但是鏈接到容器就報錯
基于本地的nginx運行,本地nginx.conf 如下
server {listen 8081;location / {root /usr/local/software/testweb/dist; # 指向你的Vue應用解壓后的目錄,宿主機目錄try_files $uri $uri/ /index.html; # 嘗試直接找到文件,如果找不到則回退到index.html(Vue路由需要)}}
基于容器運行,映射到容器的nginx.conf配置如下
server {listen 80;root /usr/share/nginx/html; #容器內的地址location / {try_files $uri $uri/ /index.html; # 嘗試直接找到文件,如果找不到則回退到index.html(Vue路由需要)}}
容器內部目錄截圖如下
容器的docker-compose配置如下
version: '3.8'
services:nginx:image: nginx:latestports:volumes:- /usr/local/software/dist:/usr/share/nginx/html
這里是將前面的本地dist路徑,掛載到容器,然后上面的nginx.conf 的 root /usr/share/nginx/html; 容器內的地址,才會生效