FROM node:18.16.0-alpine
🛠 FROM: Определяет базовый образ для контейнера. Здесь мы используем легковесную версию Node.js 18.16.0 на Alpine Linux.
LABEL maintainer="Разработчик"
👤 LABEL: Добавляет метаданные к образу, например, информацию о том, кто является его поддерживающим лицом.
ENV VITE_API_URL="https://app.супер-пупер-сайт.ru"
🌐 ENV: Устанавливает переменные окружения. В данном случае определяем базовый URL API для приложения.
WORKDIR /app
📂 WORKDIR: Задает рабочую директорию внутри контейнера. Все последующие команды будут выполняться в этой папке.
COPY ["package.json", "package-lock.json*", "./"]
📦 COPY: Копирует файлы
package.json и package-lock.json в рабочую директорию контейнера, что нужно для установки зависимостей.RUN npm install
🔄 RUN: Выполняет команду в контейнере. Здесь устанавливаем все зависимости из
package.json.COPY . .
📄 COPY: Копируем все файлы из текущей директории на хосте в рабочую директорию контейнера.
EXPOSE 8585
🔓 EXPOSE: Указывает, что контейнер будет слушать на порту 8585. Это помогает при настройке сетевого доступа.
RUN npm run build
⚙️ RUN: Запускает сборку вашего фронтенд-приложения, создавая статические файлы для развертывания.
CMD ["npm","run", "serve"]
🚀 CMD: Определяет команду по умолчанию для запуска вашего приложения, в данном случае запускает сервер разработки.
Этот Dockerfile создает контейнер для вашего фронтенд-приложения на Node.js, автоматически устанавливает зависимости и запускает сервер. 🐳✨
В дальнейшем разберем с Вами более сложные модели 💬
🔝 Наш чат для обсуждений |🚀 Буст для канала