The codebase that powers boop.cat boop.cat
at main 1.2 kB view raw
1FROM node:22-bookworm AS builder-fe 2WORKDIR /app 3RUN corepack enable 4COPY package.json package-lock.json ./ 5RUN npm ci 6COPY client ./client 7COPY package.json ./ 8RUN npm run build 9 10FROM golang:1.23-bookworm AS builder-be 11WORKDIR /app 12COPY backend-go ./ 13RUN go mod tidy 14RUN CGO_ENABLED=1 GOOS=linux go build -o boop-cat . 15 16FROM node:22-bookworm 17WORKDIR /app 18 19ENV BUN_INSTALL=/usr/local/bun 20ENV PATH=/usr/local/bun/bin:$PATH 21ENV DENO_INSTALL=/usr/local/deno 22ENV PATH=/usr/local/deno/bin:$PATH 23ENV NODE_ENV=production 24 25RUN apt-get update \ 26 && apt-get install -y --no-install-recommends \ 27 ca-certificates \ 28 curl \ 29 git \ 30 bash \ 31 unzip \ 32 python3 \ 33 make \ 34 g++ \ 35 && rm -rf /var/lib/apt/lists/* 36 37RUN corepack enable \ 38 && corepack prepare pnpm@9.0.0 --activate \ 39 && corepack prepare yarn@1.22.22 --activate 40 41RUN curl -fsSL https://bun.sh/install | bash \ 42 && ln -sf /usr/local/bun/bin/bun /usr/local/bin/bun 43 44RUN curl -fsSL https://deno.land/install.sh | sh \ 45 && ln -sf /usr/local/deno/bin/deno /usr/local/bin/deno 46 47COPY --from=builder-fe /app/client/dist /client/dist 48 49COPY --from=builder-be /app/boop-cat /app/boop-cat 50 51ENV PORT=8788 52EXPOSE 8788 53 54CMD ["/app/boop-cat"]