Skip to content

Commit

Permalink
Fix production docker build by doing esbuild for docker
Browse files Browse the repository at this point in the history
  • Loading branch information
Francis Duvivier committed Jan 6, 2025
1 parent b684b00 commit c7d89cc
Show file tree
Hide file tree
Showing 4 changed files with 615 additions and 576 deletions.
26 changes: 17 additions & 9 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,23 +1,31 @@
# Build Stage
FROM node:22-bookworm-slim AS build

WORKDIR /home/node/app

COPY package*.json ./
RUN npm ci --ignore-scripts
COPY . .
RUN npm run build

# Prod stage
FROM node:22-bookworm-slim

WORKDIR /home/node/app
ENV NODE_ENV=production

# Copy only needed files
COPY --chown=node:node ./package*.json .
COPY --chown=node:node --from=build /home/node/app/dist ./dist
COPY --chown=node:node --from=build /home/node/app/database.json ./database.json
COPY --chown=node:node --from=build /home/node/app/migrations ./migrations
COPY --chown=node:node --from=build /home/node/app/public ./public
COPY --chown=node:node --from=build /home/node/app/package*.json ./

RUN npm ci --only=production --ignore-scripts

COPY --chown=node:node process.json .
COPY process.json .
RUN mkdir -p /home/node/.pm2 /home/node/app/logs /home/node/app/pids && chown -R node:node /home/node/.pm2 /home/node/app/logs

# db-migrate stuff
COPY --chown=node:node migrations ./migrations
COPY --chown=node:node database.json .

COPY --chown=node:node ./public ./public
COPY --chown=node:node ./src ./src

USER node
EXPOSE 8081
CMD ["./node_modules/pm2/bin/pm2-runtime", "process.json"]
Loading

0 comments on commit c7d89cc

Please sign in to comment.