Обслуживание приложения vue-cli на подпутье с помощью Nginx в докере

В настоящее время у меня работает проект Nuxt.js localhost/ с докером, и я пытаюсь обслужить свое приложение vue.js (созданное с использованием vue-cli) на localhost/admin.

это мой nginx.conf:

location / {
      proxy_pass http://nuxt_app:3000;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /admin {
      proxy_pass http://admin_panel:4000;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_redirect off;
}

docker-compose.yml:

nuxt_app:
    container_name: nuxt
    build: ./frontend/
    restart: always
    command: sh -c "npm install && npm run start"
    volumes:
      - ./frontend:/app

admin_panel:
    container_name: admin
    build: ./admin/
    restart: always
    command: sh -c "npm install && npm run serve"
    volumes:
      - ./admin:/app

Dockerfile для приложения vue.js:

FROM node:12.18.2-stretch-slim

WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .

после применения вышеуказанных настроек я получаю эту ошибку:

WebSocket connection to 'ws://localhost/sockjs-node/035/e3cyt5mb/websocket' failed: Error during WebSocket handshake: Unexpected response code: 200

я также пытался изменить sockPath в vue.config.js как это:

module.exports = {
    publicPath: '/admin',
    configureWebpack: {
        plugins: [
            {
                apply: compiler => {
                    compiler.hooks.entryOption.tap('entry', () => {
                        const clients = compiler.options.entry.app
                        for (const index in clients) {
                            if (clients[index].match(/sockjs-node/)) {
                                clients[index] = clients[index].replace('0.0.0.0/sockjs-node', '0.0.0.0&sockPath=/admin/sockjs-node')
                            }
                        }
                    })
                }
            }
        ]
    }
}

но он все еще не работает.

0 ответов

Другие вопросы по тегам