notebrook-notes/maybe-dockerfile.txt

34 lines
1.1 KiB
Plaintext
Raw Normal View History

2024-08-23 14:45:28 +00:00
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" ]