Spaces:
Sleeping
Sleeping
File size: 1,625 Bytes
c081016 04069d4 ada4bc3 edb1977 5f0db80 85e5d0a 5f0db80 c081016 5f0db80 edb1977 706d707 0746643 c081016 0746643 edb1977 706d707 5f0db80 e520847 cafefc4 54120fd ada4bc3 70d57ef 5f0db80 1ccad96 939bdfb 8f2a338 939bdfb ad8a6a3 1ccad96 d462cda 1ccad96 d462cda ad8a6a3 ece7007 939bdfb 9174be1 e520847 ada4bc3 04069d4 804ce4a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
FROM node:20-slim AS builder
USER root
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
WORKDIR /app
RUN git clone https://github.com/CorentinTh/enclosed
WORKDIR /app/enclosed
RUN npm install -g pnpm --ignore-scripts && \
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:20-slim
RUN apt-get update && apt-get install -y \
git \
git-lfs \
bash \
curl \
wget \
procps && rm -rf /var/lib/apt/lists/*
WORKDIR /app
RUN chown -R 1000 /app
COPY --chown=1000 sync-notes.js ./
COPY --chown=1000 ecosystem.config.js ./
RUN npm install -g pm2 && \
npm install node-cron
COPY --from=builder /app/enclosed/packages/app-client/dist ./public
COPY --from=builder /app/enclosed/packages/app-server/dist-node/index.cjs ./index.cjs
RUN --mount=type=secret,id=DATA_REPO,mode=0444,required=true \
git clone $(cat /run/secrets/DATA_REPO)
WORKDIR /app/notes
RUN --mount=type=secret,id=GIT_USERNAME,mode=0444,required=true \
git config user.name $(cat /run/secrets/GIT_USERNAME)
RUN --mount=type=secret,id=GIT_EMAIL,mode=0444,required=true \
git config user.email $(cat /run/secrets/GIT_EMAIL)
WORKDIR /app
RUN chown -R 1000 /app/notes
RUN chmod -R 777 /app/notes
ENV STORAGE_DRIVER_FS_LITE_PATH="/app/notes/data" \
SERVER_API_ROUTES_TIMEOUT_MS=60000
USER 1000
EXPOSE 8787
CMD ["/bin/sh", "-c", "pm2-runtime ecosystem.config.js"] |