Как настроить nginx для Vue-роутера на Docker - PullRequest
0 голосов
/ 02 января 2019

Я настраиваю образ докера из nginx для обслуживания приложения Vue в качестве статических файлов. Мое приложение Vue использует Vue-Router, и оно отлично работает на другом сервере. Мой конфиг nginx выглядит так: https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations

А теперь я хочу перейти на докер, а это мой Dockerfile

# build stage
FROM node:9.11.1-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

# production stage
FROM nginx:1.15.8-alpine as production-stage
COPY docker/nginx/prod.conf /etc/nginx/nginx.conf/prod.conf         # [*]
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

А это docker/nginx/prod.conf

server {
  listen 80;
  server_name _ default_server;

  root /usr/share/nginx/html;

  location / {
    try_files $uri $uri/ /index.html;
  }
}

Он работает с домашней страницей, например: http://192.168.1.10, но получил 404 на другом URL, например http://192.168.1.10/settings

Файл prod.conf был скопирован в папку nginx, я его вижу.

У вас есть идеи, или я что-то упустил?

1 Ответ

0 голосов
/ 15 января 2019

Так я решил свою проблему.

# Add nginx config
COPY .docker/nginx/prod.conf /temp/prod.conf
RUN envsubst /app < /temp/prod.conf > /etc/nginx/conf.d/default.conf
...