trigo / Dockerfile
k-l-lambda's picture
Bundle all dependencies (remove --external flags)
48fe432
raw
history blame
1.02 kB
FROM node:20-slim
ENV DEBIAN_FRONTEND=noninteractive
# Build timestamp: 2026-01-13T03:05
WORKDIR /app
# Install esbuild globally
RUN npm install -g esbuild
# Copy backend package.json and install deps for bundling
COPY trigo-web/backend/package.json ./package.json
RUN npm install
# Copy backend source
RUN mkdir -p backend backend/dist/backend/src
COPY trigo-web/backend/src/ ./backend/src/
# Copy inc folder (needed for esbuild)
COPY trigo-web/inc/ ./inc/
# Bundle EVERYTHING into one file (no external deps)
RUN esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm \
--outfile=backend/dist/backend/src/server.js
# Copy frontend dist
COPY trigo-web/app/dist/ ./app/dist/
# Copy env files
COPY trigo-web/backend/.env ./backend/.env
COPY trigo-web/backend/.env.local ./backend/.env.local
# Verify server file
RUN ls -la backend/dist/backend/src/server.js
ENV PORT=7860
ENV HOST=0.0.0.0
ENV NODE_ENV=production
EXPOSE 7860
CMD ["node", "backend/dist/backend/src/server.js"]