/ Dockerfile
Dockerfile
1 FROM node:20.11-alpine3.18 as build 2 3 RUN npm install -g pnpm 4 5 # Move files into the image and install 6 WORKDIR /app 7 COPY ./service ./ 8 RUN pnpm install --production --frozen-lockfile > /dev/null 9 10 # Uses assets from build stage to reduce build size 11 FROM node:20.11-alpine3.18 12 13 RUN apk add --update dumb-init 14 15 # Avoid zombie processes, handle signal forwarding 16 ENTRYPOINT ["dumb-init", "--"] 17 18 WORKDIR /app 19 COPY --from=build /app /app 20 21 EXPOSE 3000 22 ENV PDS_PORT=3000 23 ENV NODE_ENV=production 24 # potential perf issues w/ io_uring on this version of node 25 ENV UV_USE_IO_URING=0 26 27 CMD ["node", "--enable-source-maps", "index.js"] 28 29 LABEL org.opencontainers.image.source=https://github.com/bluesky-social/pds 30 LABEL org.opencontainers.image.description="AT Protocol PDS" 31 LABEL org.opencontainers.image.licenses=MIT