42 lines
1.0 KiB
Docker
42 lines
1.0 KiB
Docker
# Stage 1: Build
|
|
FROM node:20-alpine AS builder
|
|
|
|
WORKDIR /build
|
|
|
|
# ARG NPM_REGISTRY=https://mirror-npm.runflare.com
|
|
RUN sed -i 's|https://dl-cdn.alpinelinux.org/alpine|https://mirror.de.velop.ir/alpine|g' /etc/apk/repositories
|
|
|
|
# Configure npm registry mirror (Liara)
|
|
ENV NPM_CONFIG_REGISTRY=https://package-mirror.liara.ir/repository/npm/
|
|
RUN npm config set registry https://package-mirror.liara.ir/repository/npm/
|
|
|
|
|
|
# Vite embeds these at build time
|
|
ARG VITE_BASE_URL=https://dmenu-api.danakcorp.com
|
|
ARG VITE_SOCKET_URL=https://dmenu-api.danakcorp.com
|
|
ARG VITE_TOKEN_NAME=dmnu_a_t
|
|
ARG VITE_REFRESH_TOKEN_NAME=dmnu-a-rt
|
|
|
|
ENV VITE_BASE_URL=$VITE_BASE_URL \
|
|
VITE_SOCKET_URL=$VITE_SOCKET_URL \
|
|
VITE_TOKEN_NAME=$VITE_TOKEN_NAME \
|
|
VITE_REFRESH_TOKEN_NAME=$VITE_REFRESH_TOKEN_NAME
|
|
|
|
COPY package*.json ./
|
|
|
|
RUN npm ci
|
|
|
|
COPY . .
|
|
|
|
RUN npm run build
|
|
|
|
# Stage 2: Serve with Nginx
|
|
FROM nginx:alpine
|
|
|
|
COPY --from=builder /build/dist /usr/share/nginx/html
|
|
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
|
|
|
EXPOSE 80
|
|
|
|
CMD ["nginx", "-g", "daemon off;"]
|