54 lines
No EOL
1.1 KiB
Docker
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"] |