grain.social is a photo sharing platform built on atproto.
1FROM denoland/deno:2.2.3 AS builder
2
3WORKDIR /app
4
5COPY . .
6
7# Give ownership to deno user and cache dependencies
8RUN chown -R deno:deno /app && \
9 deno cache ./main.tsx
10
11FROM denoland/deno:alpine-2.2.3
12
13COPY --from=flyio/litefs:0.5 /usr/local/bin/litefs /usr/local/bin/litefs
14COPY litefs.yml /etc/litefs.yml
15
16# libstdc++ is needed for @gfx/canvas
17RUN apk add --no-cache ca-certificates fuse3 libstdc++ sqlite
18
19WORKDIR /app
20
21# Needed for @gfx/canvas
22RUN mkdir -p /usr/share/fonts
23
24COPY --from=builder $DENO_DIR $DENO_DIR
25COPY --from=builder /app .
26
27# Run LiteFS as the entrypoint. After it has connected and sync'd with the
28# cluster, it will run the commands listed in the "exec" field of the config.
29ENTRYPOINT ["litefs", "mount"]