Files
deardiary/Dockerfile
lotherk c37af7cdb1 feat: add website link to app footer, Join Alpha opens in new tab
Fixes #2 - Add website link to app footer
- Add VITE_WEBSITE_URL build arg for configurable website URL
- Add Git Repository and License links to app footer
- Update Join Free Alpha links to open in new tab (target=_blank)
2026-03-27 14:26:32 +00:00

56 lines
1.4 KiB
Docker

# Multi-stage build: Backend + Frontend
FROM oven/bun:1.1-alpine AS backend-builder
WORKDIR /app/backend
COPY backend/package*.json ./
RUN bun install
COPY backend/prisma ./prisma
RUN bunx prisma generate
COPY backend/src ./src
RUN bun build src/index.ts --outdir ./dist --target bun
FROM node:20-alpine AS frontend-builder
ARG VITE_GIT_URL=https://git.kropa.tech/lotherk/deardiary
ARG VITE_WEBSITE_URL=https://deardiary.lother.io
WORKDIR /app/frontend
COPY frontend/package*.json ./
RUN npm install
COPY frontend ./
ENV VITE_GIT_URL=$VITE_GIT_URL
ENV VITE_WEBSITE_URL=$VITE_WEBSITE_URL
RUN npm run build
FROM oven/bun:1.1-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
RUN addgroup --system --gid 1001 nodejs || true
# Install nginx for serving frontend
RUN apk add --no-cache nginx
# Copy backend
COPY --from=backend-builder /app/backend/dist ./dist
COPY --from=backend-builder /app/backend/node_modules ./node_modules
COPY backend/package.json .
COPY backend/prisma ./prisma
# Copy frontend build
COPY --from=frontend-builder /app/frontend/dist ./public
# Copy docs from www/ for the app container
COPY www/docs ./public/docs
# Setup nginx
COPY nginx.conf /etc/nginx/http.d/default.conf
RUN mkdir -p /data /run /app/nginx_tmp /var/lib/nginx/logs && chmod 777 /var/lib/nginx/logs /var/lib/nginx/tmp && chown -R bun:nodejs /data /app
# Start everything as root
COPY start.sh /start.sh
RUN chmod +x /start.sh
CMD ["/start.sh"]