Skip to content

Conversation

@craig-rueda
Copy link

This pull request updates the Node.js version to 24 throughout the project and introduces a new production-ready Docker build workflow and Dockerfile. The changes ensure consistent Node.js usage in both development and production environments, add automated production image builds via GitHub Actions, and optimize Docker builds for deployment.

Node.js Version Upgrade

  • Updated .nvmrc to Node.js version 24, and propagated this change to all Dockerfiles and workflows to ensure consistent environment setup. [1] [2] [3] [4]

Production Dockerization & Build Pipeline

  • Added a new multi-stage Dockerfile optimized for production and Kubernetes, including workspace dependency management, user setup, and runtime optimizations.
  • Added a production entrypoint script docker-entrypoint-prod.sh to handle database initialization and daemon startup.
  • Introduced a build-production.yml GitHub Actions workflow to automate building and pushing production images, triggered on pushes to main and new release tags.

Development Environment Improvements

  • Updated .devcontainer/playground/Dockerfile and Dockerfile.dev to use the new Node.js version, and modified the devcontainer build workflow to dynamically read the version from .nvmrc and pass it as a build argument. [1] [2] [3] [4]

@mistercrunch
Copy link
Member

Going to look at the PR today, but one consideration is whether we bake dev tools deep in the image for convenience since this image becomes a bit of a shared devbox, with tools like git, gh, playwright/mcp, vim, tmux, and whatever else the cool kids are using these days.

Luckily the Agor install itself is single package and pretty straightforward, but it's always useful to have a prod image ready to go.

I'm thinking most will want to pass in their base image to bake their stuff deeper in the layers.

@mistercrunch
Copy link
Member

mistercrunch commented Nov 9, 2025

The agor-live package.json forces node ~20 cause i think there was user-reported issues on 22 (?) Is 22 not working but 24 work?

Or maybe npm/node does some magic to match the required node version pinned in my package?

@craig-rueda
Copy link
Author

It was working when I tried it out. Can reset to 20 if needed. Also hooked up CI to read from .nvmrc

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants