mirror of
https://github.com/hexastack/hexabot
synced 2024-11-24 13:05:15 +00:00
38 lines
953 B
Docker
38 lines
953 B
Docker
|
# Base stage: Base image for all stages
|
||
|
FROM node:18-alpine AS base
|
||
|
WORKDIR /app
|
||
|
COPY package*.json ./
|
||
|
|
||
|
|
||
|
# Set the environment variables
|
||
|
ARG REACT_APP_WIDGET_API_URL
|
||
|
ARG REACT_APP_WIDGET_CHANNEL
|
||
|
ARG REACT_APP_WIDGET_TOKEN
|
||
|
|
||
|
ENV REACT_APP_WIDGET_API_URL=${REACT_APP_WIDGET_API_URL}
|
||
|
ENV REACT_APP_WIDGET_CHANNEL=${REACT_APP_WIDGET_CHANNEL}
|
||
|
ENV REACT_APP_WIDGET_TOKEN=${REACT_APP_WIDGET_TOKEN}
|
||
|
|
||
|
# Installer stage: Installs dependencies
|
||
|
FROM base AS installer
|
||
|
COPY . .
|
||
|
RUN npm install
|
||
|
|
||
|
# Development stage: Installs development dependencies and serves the app
|
||
|
FROM installer AS development
|
||
|
ENV NODE_ENV=development
|
||
|
EXPOSE 5173
|
||
|
CMD ["npm", "run", "dev"]
|
||
|
|
||
|
# Builder stage: Builds the app
|
||
|
FROM installer AS builder
|
||
|
ENV NODE_ENV=production
|
||
|
RUN npm run build
|
||
|
|
||
|
# Production stage: Serves the app
|
||
|
FROM base AS production
|
||
|
ENV NODE_ENV=production
|
||
|
COPY --from=builder /app/dist /app/dist
|
||
|
RUN npm install -g serve
|
||
|
EXPOSE 5173
|
||
|
CMD ["serve", "-s", "dist", "-l", "5173"]
|