Something went wrong. Try again.
Aethel Bot OSS repository! aethel.xyz
bot fun ai discord discord-bot aethel
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495FROM oven/bun:latest AS builder
ARG SOURCE_COMMITARG VITE_BOT_API_URLARG VITE_STATUS_API_KEYARG VITE_FRONTEND_URLARG VITE_DISCORD_CLIENT_IDARG STATUS_API_KEY
ENV SOURCE_COMMIT=${SOURCE_COMMIT}ENV NODE_ENV=productionENV VITE_BOT_API_URL=${VITE_BOT_API_URL}ENV VITE_STATUS_API_KEY=${VITE_STATUS_API_KEY}ENV VITE_FRONTEND_URL=${VITE_FRONTEND_URL}ENV VITE_DISCORD_CLIENT_ID=${VITE_DISCORD_CLIENT_ID}ENV STATUS_API_KEY=${STATUS_API_KEY}
WORKDIR /app
COPY package.json bun.lock ./RUN bun install --frozen-lockfile
COPY src ./srcCOPY scripts ./scriptsCOPY locales ./localesCOPY migrations ./migrationsCOPY tsconfig.json ./COPY .env* ./
RUN bun run build
WORKDIR /app/web
COPY web/package.json web/bun.lock ./RUN bun install --frozen-lockfile
COPY web/src ./srcCOPY web/public ./publicCOPY web/index.html ./COPY web/vite.config.ts ./COPY web/tsconfig.json ./COPY web/tsconfig.node.json ./COPY web/tailwind.config.js ./COPY web/postcss.config.js ./
RUN bun run build
FROM oven/bun:1 AS production
ARG SOURCE_COMMITARG VITE_BOT_API_URLARG VITE_STATUS_API_KEYARG VITE_FRONTEND_URLARG VITE_DISCORD_CLIENT_ID
ENV SOURCE_COMMIT=${SOURCE_COMMIT}ENV NODE_ENV=productionENV VITE_BOT_API_URL=${VITE_BOT_API_URL}ENV STATUS_API_KEY=${STATUS_API_KEY}ENV VITE_STATUS_API_KEY=${VITE_STATUS_API_KEY}ENV VITE_FRONTEND_URL=${VITE_FRONTEND_URL}ENV VITE_DISCORD_CLIENT_ID=${VITE_DISCORD_CLIENT_ID}
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* && \ groupadd -g 1001 nodejs && \ useradd -r -u 1001 -g nodejs aethel
WORKDIR /app
COPY package.json bun.lock ./COPY .env* ./
RUN bun install --frozen-lockfile --production
COPY --from=builder --chown=aethel:nodejs /app/dist ./distCOPY --from=builder --chown=aethel:nodejs /app/locales ./localesCOPY --from=builder --chown=aethel:nodejs /app/migrations ./migrationsCOPY --from=builder --chown=aethel:nodejs /app/scripts ./scriptsCOPY --from=builder --chown=aethel:nodejs /app/web/dist ./web/dist
RUN mkdir -p /app/logs && chown aethel:nodejs /app/logs
USER aethel
EXPOSE 2020
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD curl -f http://localhost:2020/health || exit 1
CMD ["bun", "run", "start"]