34 lines
721 B
Docker
34 lines
721 B
Docker
# syntax=docker/dockerfile:1.7
|
|
|
|
FROM oven/bun:canary-slim AS deps
|
|
WORKDIR /app
|
|
|
|
COPY package.json bun.lock ./
|
|
COPY .opencode/package.json .opencode/bun.lock ./.opencode/
|
|
RUN bun install --frozen-lockfile
|
|
|
|
FROM deps AS build
|
|
WORKDIR /app
|
|
|
|
COPY tsconfig.json opencode.json README.md ./
|
|
COPY src ./src
|
|
COPY .opencode ./.opencode
|
|
RUN bun run check
|
|
|
|
FROM oven/bun:canary-slim AS runner
|
|
WORKDIR /app
|
|
|
|
ENV NODE_ENV=production
|
|
ENV HOST=0.0.0.0
|
|
ENV PORT=8787
|
|
|
|
COPY --from=deps /app/node_modules ./node_modules
|
|
COPY --from=deps /app/.opencode/node_modules ./.opencode/node_modules
|
|
COPY package.json bun.lock ./
|
|
COPY tsconfig.json opencode.json ./
|
|
COPY src ./src
|
|
COPY .opencode ./.opencode
|
|
|
|
EXPOSE 8787
|
|
CMD ["bun", "src/server.ts"]
|