File size: 1,561 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
d462cda
8f2a338
ad8a6a3
 
1ccad96
d462cda
 
1ccad96
d462cda
ad8a6a3
 
ece7007
e520847
b9e2e11
de33fb6
e520847
ada4bc3
04069d4
 
54120fd
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
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) ./.data

WORKDIR /app/.data

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/.data
RUN chmod 777 /app/.data

USER 1000

EXPOSE 8787

CMD ["/bin/sh", "-c", "cd .data; git pull; cd ..; pm2-runtime ecosystem.config.js"]