Home > OS >  Trying to run Vite inside Docker container
Trying to run Vite inside Docker container

Time:01-21

I'm new in Docker and JS technologies so don't judje too hard. I'm trying to run npm run dev from node.js container (called npm). It goes right and shows that css and scripts are available at localhost:3009, but they're not. Am I right that the problem is with node.js container, which is trying to restart all the time and doesn't exposes any ports? If yes, how can I fix it? Thank you in advance. Here is my docker-compose.yml and vite.config.js

version: '3'

networks:
  laravel:

services:
  site:
    build:
      context: ./dockerfiles
      dockerfile: nginx.dockerfile
      args:
        - UID=${UID:-1000}
        - GID=${GID:-1000}
    container_name: nginx
    restart: unless-stopped
    ports:
      - "80:80"
    volumes:
      - ./src:/var/www/html:delegated
    depends_on:
      - php
      - redis
      - mysql
      - mailhog
    networks:
      - laravel

  mysql:
    image: mariadb:10.6
    container_name: mysql
    restart: unless-stopped
    tty: true
    volumes:
      - ./db-data:/var/lib/mysql
    ports:
      - 3306:3306
    environment:
      MYSQL_DATABASE: homestead
      MYSQL_USER: homestead
      MYSQL_PASSWORD: secret
      MYSQL_ROOT_PASSWORD: secret
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    networks:
      - laravel

  php:
    build:
      context: ./dockerfiles
      dockerfile: php.dockerfile
      args:
        - UID=${UID:-1000}
        - GID=${GID:-1000}
    container_name: php
    restart: unless-stopped
    volumes:
      - ./src:/var/www/html:delegated
    networks:
      - laravel

  redis:
    image: redis:alpine
    container_name: redis
    restart: unless-stopped
    ports:
      - 6379:6379
    networks:
      - laravel

  composer:
    build:
      context: ./dockerfiles
      dockerfile: composer.dockerfile
      args:
        - UID=${UID:-1000}
        - GID=${GID:-1000}
    container_name: composer
    volumes:
      - ./src:/var/www/html
    working_dir: /var/www/html
    depends_on:
      - php
    user: laravel
    entrypoint: ['composer', '--ignore-platform-reqs']
    networks:
      - laravel

  npm:
    image: node:latest
    container_name: npm
    restart: always
    volumes:
      - ./src:/var/www/html
    ports:
      - 3000:3000
      - 3001:3001
      - 3009:3009
    working_dir: /var/www/html
    entrypoint: ['npm']
    networks:
      - laravel

  artisan:
    build:
      context: ./dockerfiles
      dockerfile: php.dockerfile
      args:
        - UID=${UID:-1000}
        - GID=${GID:-1000}
    container_name: artisan
    volumes:
      - ./src:/var/www/html:delegated
    depends_on:
      - mysql
    working_dir: /var/www/html
    entrypoint: ['php', '/var/www/html/artisan']
    networks:
      - laravel

  mailhog:
    image: mailhog/mailhog:latest
    container_name: mailhog
    ports:
      - 1025:1025
      - 8025:8025
    networks:
      - laravel

vite.config.js

import {defineConfig} from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    server: {
        port: 3009
    },
    plugins: [
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: true,
        }),
    ],
});

CodePudding user response:

You should use the "--host" key starting your Vite

  • Related