+15
-2
@@ -1,4 +1,8 @@
|
||||
# syntax=docker/dockerfile:1.7-labs
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Stage 1: base - system dependencies shared by install and production
|
||||
# ---------------------------------------------------------------------------
|
||||
FROM oven/bun:1.3.10 AS base
|
||||
|
||||
ENV APP_HOME=/app \
|
||||
@@ -26,12 +30,18 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
||||
curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Stage 2: deps - install Bun dependencies without project code
|
||||
# ---------------------------------------------------------------------------
|
||||
FROM base AS deps
|
||||
WORKDIR ${APP_HOME}
|
||||
COPY package.json bun.lock ./
|
||||
RUN NODE_ENV=development bun install --frozen-lockfile
|
||||
|
||||
FROM base AS runner
|
||||
# ---------------------------------------------------------------------------
|
||||
# Stage 3: prod - production target used by compute deployments
|
||||
# ---------------------------------------------------------------------------
|
||||
FROM base AS prod
|
||||
WORKDIR ${APP_HOME}
|
||||
|
||||
COPY --from=deps ${APP_HOME}/node_modules ./node_modules
|
||||
@@ -48,6 +58,9 @@ RUN chown -R bun:bun /app
|
||||
|
||||
USER bun
|
||||
|
||||
EXPOSE 3001
|
||||
EXPOSE 8001
|
||||
|
||||
CMD ["bun", "run", "server"]
|
||||
|
||||
# Backward-compatible target for the existing local docker-compose.yml.
|
||||
FROM prod AS runner
|
||||
|
||||
Reference in New Issue
Block a user