|
|
FROM node:22 AS builder |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
|
|
|
RUN npm install -g pnpm |
|
|
|
|
|
|
|
|
RUN git clone https://github.com/corentinth/enclosed.git ./ |
|
|
|
|
|
|
|
|
RUN pnpm install --frozen-lockfile --ignore-scripts |
|
|
|
|
|
|
|
|
RUN pnpm --filter @enclosed/crypto run build && \ |
|
|
pnpm --filter @enclosed/lib run build && \ |
|
|
pnpm --filter @enclosed/app-client run build && \ |
|
|
pnpm --filter @enclosed/app-server run build:node |
|
|
|
|
|
FROM node:22-slim |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
COPY --from=builder /app/packages/app-client/dist ./public |
|
|
COPY --from=builder /app/packages/app-server/dist-node/index.cjs ./index.cjs |
|
|
|
|
|
RUN mkdir -p /persistent/.data && \ |
|
|
rm -rf /app/.data && \ |
|
|
ln -s /persistent/.data /app/.data |
|
|
|
|
|
RUN chmod -R 777 /persistent/.data |
|
|
|
|
|
|
|
|
ENV NODE_ENV=production |
|
|
ENV PORT=7860 |
|
|
|
|
|
|
|
|
EXPOSE 7860 |
|
|
|
|
|
|
|
|
CMD ["node", "index.cjs"] |