The recipes.blue monorepo recipes.blue
recipes appview atproto
at feature/nextjs-frontend 42 lines 1.2 kB view raw
1FROM oven/bun:1.3.3 AS base 2WORKDIR /app 3 4FROM base AS deps 5COPY package.json bun.lock ./ 6COPY apps/api/package.json apps/api/package.json 7COPY apps/ingester/package.json apps/ingester/package.json 8COPY apps/web/package.json apps/web/package.json 9COPY libs/database/package.json libs/database/package.json 10COPY libs/lexicons/package.json libs/lexicons/package.json 11COPY libs/tsconfig/package.json libs/tsconfig/package.json 12 13RUN \ 14 --mount=type=cache,target=/root/.bun/install/cache \ 15 bun install \ 16 --frozen-lockfile \ 17 --filter '@cookware/api' 18 19FROM base AS build 20COPY --from=deps /app/node_modules ./node_modules/ 21COPY . . 22 23RUN bun build /app/apps/api/src/index.ts \ 24 --compile \ 25 --minify \ 26 --sourcemap \ 27 --bytecode \ 28 --outfile=/app/dist/api \ 29 --target=bun \ 30 --external '@libsql/*' 31 32FROM base AS libsql 33WORKDIR /app 34COPY bun.lock ./ 35RUN LIBSQL_VERSION=$(grep -oP '"@libsql/client@\K[0-9.]+' bun.lock | head -1) && \ 36 bun install @libsql/client@${LIBSQL_VERSION} --production 37 38FROM rockylinux/rockylinux:9.4-ubi AS run 39ENV NODE_PATH=/app/node_modules 40COPY --from=build /app/dist/api /app/api 41COPY --from=libsql /app/node_modules /app/node_modules 42ENTRYPOINT ["/app/api"]