Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker-compose on Vite

I am dockering a Vite app with Vue. When I run yarn devfrom my system, everything is Ok, but when I launch the same command from my dockerfile, I got the following error

yarn run v1.22.5

warning package.json: No license field

$ vite

failed to load config from /app/vite.config.ts

error when starting dev server:

Error: spawn Unknown system error -8

My dockerfile is

FROM node:14.16.0-alpine3.13

WORKDIR /app

COPY . .

CMD ["yarn", "dev"]

And my docker-compose.yml is

version: '3.8'

services:
  client:
    build: 
      context: ./dockerfiles
      dockerfile: client.dockerfile
    volumes:
      - ./client:/app
    ports:
      - '3000:3000'

My folder structure is

client
|-public
|-src
|-node_modules
|-package.json
|-vite.config.ts
|- ... rest of files
dockerfiles
|-client.dockerfile
docker-compose.yml (at root level)
like image 642
Francisco Martin Avatar asked Mar 14 '21 08:03

Francisco Martin


Video Answer


2 Answers

I had the same issue, for some reason docker used the node_modules folder from the project instead of its own (with RUN npm install command). I've solved it by adding a .dockerignore file and ignoring the node_modules of the project.

//.dockerignore

node_modules/*
like image 135
Fima Taf Avatar answered Oct 30 '22 14:10

Fima Taf


I haven't quite figured this one out yet, but I think it has something to do with the alpine node image. Try using one of the "slim" images of node instead.

like image 20
tyler-g Avatar answered Oct 30 '22 14:10

tyler-g