34 lines
1.1 KiB
Plaintext
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" ]
|