notebrook-notes/maybe-dockerfile.txt

34 lines
1.1 KiB
Plaintext

I'll improve the docker build eventually, so I'll keep the planned improvs here. But for now it might be better to use the bigger multistage docker file.
# Use the official Bun image
FROM oven/bun:1 AS base
WORKDIR /usr/src/app
# Install dependencies for both backend and frontend
COPY backend/package.json backend/bun.lockb frontend/package.json frontend/bun.lockb /usr/src/app/
RUN bun install --production --cwd backend && \
bun install --production --cwd frontend
# Build the frontend project
COPY frontend/ /usr/src/app/frontend
RUN bun run --cwd frontend build
# Prepare for final release
FROM oven/bun:1 AS release
WORKDIR /usr/src/app
# Copy production dependencies
COPY --from=base /usr/src/app/backend/node_modules backend/node_modules
COPY --from=base /usr/src/app/frontend/node_modules frontend/node_modules
# Copy backend source code
COPY backend/ backend/
# Copy the built frontend assets into the backend public directory
COPY --from=base /usr/src/app/frontend/dist backend/public
# Set the entrypoint to run the backend server
USER bun
EXPOSE 3000/tcp
ENTRYPOINT [ "bun", "run", "backend/src/server.ts" ]