mirror of
https://github.com/vacp2p/linea-monorepo.git
synced 2026-01-08 03:43:56 -05:00
48 lines
1.3 KiB
Docker
48 lines
1.3 KiB
Docker
FROM node:lts-slim AS base
|
|
|
|
ENV PNPM_HOME="/pnpm"
|
|
ENV PATH="$PNPM_HOME:$PATH"
|
|
|
|
# Temp fix for the corepack issue described in https://github.com/pnpm/pnpm/issues/9029
|
|
RUN npm i -g corepack@latest
|
|
|
|
RUN corepack enable
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends python3 ca-certificates bash curl make g++ \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
FROM base AS builder
|
|
|
|
WORKDIR /usr/src/app
|
|
|
|
ARG NATIVE_LIBS_RELEASE_TAG
|
|
ENV NATIVE_LIBS_RELEASE_TAG=${NATIVE_LIBS_RELEASE_TAG}
|
|
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig.json ./
|
|
|
|
COPY ./postman/package.json ./postman/package.json
|
|
COPY ./sdk/package.json ./sdk/package.json
|
|
COPY ./ts-libs/linea-native-libs/package.json ./ts-libs/linea-native-libs/package.json
|
|
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile --prefer-offline --ignore-scripts
|
|
|
|
COPY ./postman ./postman
|
|
COPY ./sdk ./sdk
|
|
COPY ts-libs/linea-native-libs ./ts-libs/linea-native-libs
|
|
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm run build \
|
|
&& pnpm deploy --filter=./postman --prod ./prod/postman
|
|
|
|
FROM node:lts-slim AS production
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
WORKDIR /usr/src/app
|
|
|
|
USER node
|
|
|
|
COPY --from=builder /usr/src/app/prod/postman ./postman
|
|
|
|
CMD [ "node", "./postman/dist/scripts/runPostman.js" ] |