38 lines
796 B
Docker
38 lines
796 B
Docker
# Shared Bun stage for frontend dependencies and sources
|
|
FROM oven/bun:1 AS bun-base
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package.json bun.lock /app/
|
|
COPY frontend/package.json /app/frontend/
|
|
|
|
WORKDIR /app/frontend
|
|
|
|
RUN bun install
|
|
|
|
COPY ./frontend /app/frontend
|
|
ARG VITE_API_URL
|
|
|
|
|
|
# Development stage for docker compose watch + Vite HMR
|
|
FROM bun-base AS dev-stage
|
|
|
|
EXPOSE 80
|
|
|
|
CMD ["bun", "run", "dev", "--host", "0.0.0.0", "--port", "80"]
|
|
|
|
|
|
# Build stage for production assets
|
|
FROM bun-base AS build-stage
|
|
|
|
RUN bun run build
|
|
|
|
|
|
# Production stage serving compiled assets with Nginx
|
|
FROM nginx:1
|
|
|
|
COPY --from=build-stage /app/frontend/dist/ /usr/share/nginx/html
|
|
|
|
COPY ./frontend/nginx.conf /etc/nginx/conf.d/default.conf
|
|
COPY ./frontend/nginx-backend-not-found.conf /etc/nginx/extra-conf.d/backend-not-found.conf
|