rsocials-online/api/Dockerfile

30 lines
660 B
Docker

FROM oven/bun:1-alpine
WORKDIR /app
# Install deps as root
COPY package.json bun.lock* ./
RUN bun install --frozen-lockfile 2>/dev/null || bun install
COPY tsconfig.json ./
COPY src/ ./src/
# Create data dir and non-root user
RUN mkdir -p /data && \
addgroup -g 1001 rsocials && \
adduser -u 1001 -G rsocials -s /bin/sh -D rsocials && \
chown -R rsocials:rsocials /app /data
USER rsocials
ENV PORT=3001
ENV DATABASE_PATH=/data/instances.db
ENV NODE_ENV=production
EXPOSE 3001
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD wget -qO- http://localhost:3001/health || exit 1
CMD ["bun", "run", "src/index.ts"]