This short tutorial will walk you through the perfect Rookout deployment for containerized NodeJS applications in four quick steps.
Get Your Application
First things first, choose an application. If you don't have one readily available, use our sample application.
git clone https://github.com/Rookout/node-tutorial-2022
1. Add the npm Package
Rookout for NodeJS is a simple npm Package.
Go ahead and add it as a dependency:
npm install --save rookout
2. Start Rookout
Load and start the package to connect to your Rookout account (if you haven't signed up, do that here).
The start function returns a promise - wait for it to debug the application initialization code.
Edit your main file - in our case
const rookout = require('rookout')
token: '[Your Rookout Token]',
}).then(/*Start your application here*/)
Configuration is where you can get fancy. You have got additional options up your sleeve:
- Move options to secret or configuration managers.
- If you are using Rookout's hybrid architecture, set up the controller's host configuration.
- Dig deeper into other options available right here.
3. Include Source Maps
Configure transpiling tools to generate source maps and include them in your container image.
For babel, open the
babel.config.json file and change the
sourceMaps configuration to
Instructions to configure Webpack, TypeScript, and CoffeeScript may be found here.
4. Embed Source Information
Rookout offers the smoothest debugging experience by displaying up-to-date source code for each server.
Set this up for containerized applications by adding a handful of files from your
.git folder to the container image.
Edit (or add) your
.Dockerignore file and adapt the traditional
# Keep ignoring .git
# Allow specific files with !
COPY command to the end of the
Dockerfile, just above the
COPY .git /.git
Note: in multi-stage builds (like ours), make all your changes on the final stage.
One second! if you are not using our demo app, please commit and push your changes to a new branch.
Build and run your Docker image:
docker build . -t rookout-nodejs-todo
docker run -it -p 8080:8080 rookout-nodejs-todo
As your Node.JS application spins up, search for this output at the top:
Interact with your application at
http://localhost:8080 and use Rookout to debug it on the fly!