docker create-react-app Пример docker-compose для React

Возможный вариант:

docker-compose.yml:

version: '3.9'
services:
  frontend:
    working_dir: /var/www
    volumes:
      - '.:/var/www'
    ports:
      - "3000:3000"

Dockerfile:

FROM node:18.15-alpine
WORKDIR /var/www
COPY package.json ./
COPY package-lock.json ./
RUN npm ci
COPY ../ .
CMD npm start

Проблемы и решения для node_modules/

Всего есть две задачи/проблемы:

  1. Избежать затирания при создании тома для исходного кода проекта (как тут)
  2. Разделение кода из node_modules между контейнером и хостой файловой системой (напр. чтобы в IDE было видно с чем именно работаем)

Материалы:

vedro-compota's picture

# Используем официальный образ Node.js в качестве базового образа
FROM node:14-alpine

# Устанавливаем рабочую директорию внутри контейнера
WORKDIR /app

# Копируем package.json и package-lock.json в контейнер
COPY package*.json ./

# Устанавливаем зависимости
RUN npm ci

# Копируем остальные файлы приложения в контейнер
COPY . .

# Собираем приложение
RUN npm run build

# Устанавливаем глобально serve для статического сервера
RUN npm install -g serve

# Устанавливаем переменную окружения с указанием порта, на котором будет работать приложение
ENV PORT=80

# Открываем порт в контейнере
EXPOSE 80

# Запускаем статический сервер приложения
CMD ["serve", "-s", "build", "-l", "80"]
version: '3'

services:
  app:
    build: .
    ports:
      - "3000:80"
    volumes:
      - ./src:/app/src
    environment:
      - NODE_ENV=development
    command: npm run start

_____________
матфак вгу и остальная классика =)