beeta/frontend/Dockerfile
2026-01-05 22:54:27 -05:00

54 lines
No EOL
1.1 KiB
Docker

# Use Bun base image for builder
FROM oven/bun:1-alpine AS builder
WORKDIR /app
# Copy package files
COPY package*.json ./
COPY bun.lock* ./
# Install dependencies with Bun
RUN bun install
# Copy source files
COPY . .
# Set environment variables for build
ENV VITE_API_URL=http://localhost/api
ENV VITE_WS_URL=ws://localhost/ws
ENV VITE_STREAM_PORT=8088
# Nakama game server config
ARG VITE_NAKAMA_SERVER_KEY=defaultkey
ARG VITE_NAKAMA_HOST=localhost
ARG VITE_NAKAMA_PORT=80
ARG VITE_NAKAMA_USE_SSL=false
ENV VITE_NAKAMA_SERVER_KEY=${VITE_NAKAMA_SERVER_KEY}
ENV VITE_NAKAMA_HOST=${VITE_NAKAMA_HOST}
ENV VITE_NAKAMA_PORT=${VITE_NAKAMA_PORT}
ENV VITE_NAKAMA_USE_SSL=${VITE_NAKAMA_USE_SSL}
# Build the application
RUN bun run build
# Production stage - can still use Bun
FROM oven/bun:1-alpine
WORKDIR /app
# Copy built application and lockfile
COPY --from=builder /app/build ./build
COPY --from=builder /app/package*.json ./
COPY --from=builder /app/bun.lock* ./
# Install production dependencies only
RUN bun install --production
# Expose port
EXPOSE 3000
# Set environment to production
ENV NODE_ENV=production
# Run with Bun
CMD ["bun", "run", "build/index.js"]