feat: add Dockerfiles and workflow configurations for CRUD, Ingest, and Web APIs
release-web / release (push) Has been cancelled

This commit is contained in:
marco.chan committed 2026-09-04 12:38:53 +08:00
1 parent d3b6c5032f
commit d8b7b9735b
7 files changed
+334

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
# syntax=docker/dockerfile:1.7
# Build from the monorepo root context so this image can use:
# - apps/ingest-api
# - packages/contracts
FROM node:20-alpine AS base
WORKDIR /workspace
RUN corepack enable
FROM base AS deps
COPY package.json yarn.lock .yarnrc.yml ./
COPY .yarn/ ./.yarn/
COPY apps/ingest-api/package.json ./apps/ingest-api/package.json
COPY packages/contracts/package.json ./packages/contracts/package.json
# Use node_modules inside the container for predictable runtime behavior.
RUN YARN_NODE_LINKER=node-modules yarn install --immutable
FROM deps AS build
COPY apps/ingest-api ./apps/ingest-api
COPY packages/contracts ./packages/contracts
RUN yarn workspace ingest-api build
FROM node:20-alpine AS runtime
WORKDIR /workspace
ENV NODE_ENV=production
RUN corepack enable
COPY --from=build /workspace/package.json /workspace/yarn.lock /workspace/.yarnrc.yml ./
COPY --from=build /workspace/.yarn ./.yarn
COPY --from=build /workspace/node_modules ./node_modules
COPY --from=build /workspace/apps/ingest-api ./apps/ingest-api
COPY --from=build /workspace/packages/contracts ./packages/contracts
EXPOSE 3001
CMD ["yarn", "workspace", "ingest-api", "start"]