@admiz

Почему у меня не работает npm run dev в Docker?

У меня есть контейнер с nginx и php, в котором развернуто приложение Laravel, а также установлен сборщик vite. Когда я запускаю команду npm run dev, файлы CSS и JS не компилируются. При попытке открыть приложение в браузере, я получаю 3 ошибки:
- GET http://localhost:5173/@vite/client net::ERR_EMPTY_RESPONSE
- GET http://localhost:5173/resources/js/app.js net::ERR_EMPTY_RESPONSE
- GET http://localhost:5173/resources/css/app.css net::ERR_EMPTY_RESPONSE


Я понял, что основная проблема заключается в том, что порт 5173 недоступен из контейнера. Можете подсказать, как можно настроить доступ к порту 5173 ?

Мой файл docker-compose.yaml

version: "3"
networks:
  backend:
    driver: bridge
services:
  nginx:
    image: "nginx:stable-alpine"
    ports:
      - "5000:80"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
      - ./src:/var/www/laravel
    depends_on:
      - mysql
      - php
      - phpmyadmin
      - npm
    networks:
      - backend
  php:
    build:
      context: dockerfiles
      dockerfile: php.Dockerfile
    volumes:
      - ./src:/var/www/laravel
    networks:
      - backend

  mysql:
    image: mysql:8.0
    ports:
      - "3316:3306"
    env_file:
      - env/mysql.env
    networks:
      - backend
  composer:
     build:
        context: dockerfiles
        dockerfile: composer.Dockerfile
     volumes:
        - ./src:/var/www/laravel
     networks:
        - backend   
  artisan:
      build: 
        context: dockerfiles
        dockerfile: php.Dockerfile
      volumes:
          - ./src:/var/www/laravel
      entrypoint: ["php","/var/www/laravel/artisan"]
      networks:
        - backend

  npm:
    image: node:alpine
    container_name: npm
    volumes:
      - ./src:/var/www/laravel
    ports:
      - "5173:5173"
    working_dir: /var/www/laravel
    entrypoint: ["npm"]
    command: ["npm", "run", "dev", "--host", "0.0.0.0"]
  • Вопрос задан
  • 258 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы