Skip to content

feat: optimize Dockerfile for production with multi-stage build using Node 22#1873

Open
shyam-medh wants to merge 1 commit into
recodehive:mainfrom
shyam-medh:feature/optimize-dockerfile
Open

feat: optimize Dockerfile for production with multi-stage build using Node 22#1873
shyam-medh wants to merge 1 commit into
recodehive:mainfrom
shyam-medh:feature/optimize-dockerfile

Conversation

@shyam-medh
Copy link
Copy Markdown

Description

This PR optimizes the Docker infrastructure for production by implementing a multi-stage Docker build. The motivation is to drastically reduce the size and increase the security of the final Docker image by serving purely static files via Nginx, rather than running a Node.js development server with source code included.
Fixes #1869

Type of Change

  • New feature (e.g., new page, component, or functionality)
  • Bug fix (non-breaking change that fixes an issue)
  • UI/UX improvement (design, layout, or styling updates)
  • Performance optimization (e.g., code splitting, caching)
  • Documentation update (README, contribution guidelines, etc.)
  • Other (please specify): DevOps / Infrastructure Enhancement

Changes Made

  • Dockerfile: Replaced the single-stage development image with a robust two-stage build.
    • Stage 1 (builder): Uses node:22-alpine to install dependencies and run npm run build.
    • Stage 2 (production): Uses nginx:alpine to copy only the compiled static assets (/build) and serves them.
  • docker-compose.yml: Added target: builder to the build block. This ensures that developers running docker-compose up locally still get the development environment with hot-reloading (npm run dev) and are unaffected by the production stage.

Dependencies

  • No new external dependencies.
  • Confirmed the Dockerfile builder stage uses node:22-alpine to align with the >=20.9.0 <23 engine requirement in package.json and the .nvmrc configuration.

Checklist

  • My code follows the style guidelines of this project.
  • I have tested my changes across major browsers and devices
  • My changes do not generate new console warnings or errors .
  • I ran npm run build and attached screenshot(s) in this PR.
  • This is already assigned Issue to me, not an unassigned issue.

Request

  • Please add valuable lables to the PR so that it helps me, to get good points for contribution in GSSoC, Thankyou @sanjay-kv

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Jun 6, 2026

@shyam-medh is attempting to deploy a commit to the recode Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 6, 2026

Thank you for submitting your pull request! 🙌 We'll review it as soon as possible. The estimated time for response is 5–8 hrs.

In the meantime, please provide all necessary screenshots and make sure you run - npm build run , command and provide a screenshot, a video recording, or an image of the update you made below, which helps speed up the review and assignment. If you have questions, reach out to LinkedIn. Your contributions are highly appreciated!😊

Note: I maintain the repo issue every day twice at 8:00 AM IST and 9:00 PM IST. If your PR goes stale for more than one day, you can tag and comment on this same issue by tagging @sanjay-kv.

We are here to help you on this journey of open source. Consistent 20 contributions are eligible for sponsorship 💰

🎁 check our list of amazing people we sponsored so far: GitHub Sponsorship. ✨

📚Your perks for contribution to this community 👇🏻

  1. Get free Consultation use code recode50 to get free: Mentorship for free.

  2. Get the Ebook for free use code recode at checkout: Data Science cheatsheet for Beginners.

  3. Check out this weekly Newsletter: Sanjay's Newsletter.

If there are any specific instructions or feedback regarding your PR, we'll provide them here. Thanks again for your contribution! 😊

@github-actions github-actions Bot added in-review The current changes are in review and would need approval and testing before merging level 1 10 points recode this is label for leaderboard labels Jun 6, 2026
@github-actions github-actions Bot added this to the recode:launch 3.0 milestone Jun 6, 2026
@github-actions github-actions Bot added Enhacement gssoc26 label enhancement New feature or request gssoc:approved gssoc label high priority gssoc26 label level2 gssoc26 label labels Jun 6, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 6, 2026

✅ Synchronized metadata from Issue #1869:

  • Labels: enhancement, level 1, recode, Enhacement, high priority, level2, gssoc:approved
  • Milestone: recode:launch 3.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Enhacement gssoc26 label enhancement New feature or request gssoc:approved gssoc label high priority gssoc26 label in-review The current changes are in review and would need approval and testing before merging level 1 10 points level2 gssoc26 label recode this is label for leaderboard

Projects

None yet

Development

Successfully merging this pull request may close these issues.

💡[Feature]: Optimize Dockerfile for Production with Multi-stage Build

1 participant