feat: add Dockerfiles and workflow configurations for CRUD, Ingest, and Web APIs
release-web / release (push) Has been cancelled
release-web / release (push) Has been cancelled
This commit is contained in:
1 parent
d3b6c5032f
commit
d8b7b9735b
7 files changed
+334
No files matched your search
@@ -0,0 +1,36 @@
|
||||
# syntax=docker/dockerfile:1.7
|
||||
|
||||
# Build from the monorepo root context so this image can use:
|
||||
# - apps/crud-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/crud-api/package.json ./apps/crud-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/crud-api ./apps/crud-api
|
||||
COPY packages/contracts ./packages/contracts
|
||||
RUN yarn workspace crud-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/crud-api ./apps/crud-api
|
||||
COPY --from=build /workspace/packages/contracts ./packages/contracts
|
||||
|
||||
EXPOSE 3000
|
||||
CMD ["yarn", "workspace", "crud-api", "start"]
|
||||
@@ -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"]
|
||||
@@ -0,0 +1,25 @@
|
||||
# syntax=docker/dockerfile:1.7
|
||||
|
||||
# Build from the monorepo root context so this image can use:
|
||||
# - apps/web
|
||||
# - 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/web/package.json ./apps/web/package.json
|
||||
COPY packages/contracts/package.json ./packages/contracts/package.json
|
||||
RUN YARN_NODE_LINKER=node-modules yarn install --immutable
|
||||
|
||||
FROM deps AS build
|
||||
COPY apps/web ./apps/web
|
||||
COPY packages/contracts ./packages/contracts
|
||||
RUN yarn workspace web build
|
||||
|
||||
FROM nginx:1.27-alpine AS runtime
|
||||
COPY --from=build /workspace/apps/web/dist /usr/share/nginx/html
|
||||
EXPOSE 80
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
Reference in new issue
Block a user