mirror of
https://github.com/zkldi/Tachi.git
synced 2026-09-26 17:07:58 +03:00
41 lines
939 B
Docker
41 lines
939 B
Docker
# Build context must be the repo root.
|
|
# docker build -f docker/Dockerfile.bot .
|
|
|
|
FROM oven/bun:alpine AS base
|
|
WORKDIR /app
|
|
|
|
# --- deps: install ALL deps (dev included, needed for the build) ---
|
|
FROM base AS deps
|
|
|
|
COPY package.json bun.lock bunfig.toml ./
|
|
COPY patches ./patches
|
|
|
|
COPY typescript/bot/package.json ./typescript/bot/
|
|
COPY typescript/common/package.json ./typescript/common/
|
|
|
|
RUN bun install --frozen-lockfile
|
|
|
|
# --- build: compile everything into a single native binary ---
|
|
FROM deps AS build
|
|
|
|
COPY typescript/bot ./typescript/bot
|
|
COPY typescript/common ./typescript/common
|
|
|
|
RUN bun build \
|
|
--compile \
|
|
--target=bun \
|
|
./typescript/bot/src/main.ts \
|
|
--outfile /bot
|
|
|
|
# --- prod: nothing but the binary ---
|
|
FROM alpine:3.21 AS prod
|
|
|
|
RUN apk add --no-cache curl
|
|
|
|
COPY --from=build /bot /bot
|
|
|
|
HEALTHCHECK --interval=15s --timeout=5s \
|
|
CMD curl -sf http://localhost:${PORT:-8080}/.deploy/up || exit 1
|
|
|
|
CMD ["/bot"]
|