node-docker-tools
v0.0.7
Published
Docker tools for Node.js
Readme
node-docker-tools
Docker made easy
Commands
npm exec node-docker-tools generate # Generate a Dockerfile based on package.json
npm exec node-docker-tools build # Build the image
npm exec node-docker-tools run # Build the image and then run the containerConfig
Config should reside in the root of your project and be named node-docker-tools.config.js. A configuration file is often not needed though as node-docker-tools by default derives configuration from your environment.
const { Config } = require("node-docker-tools/config");
/** @type {Config} */
module.exports = {
projectName: "myapp", // Default derived from package.json
projectVersion: "1.2.3", // Default derived from package.json
framework: "nextjs", // Default derived from package.json
nodeVersion: "21", // Default derived from node -v
envFile: ".dotenv.local" // Default .env.local or .env present
};Compatibility
These tools are tested with:
Node
- [x] 22.1.0
Frameworks
- [x] Next.js v14
Roadmap
- [ ] Explicitly pass framework as arg to generate command, and rename dockerfile
- [ ] Add support for reverse proxying using nginx
- [ ] Add support for build args
- [ ] Add support for Express
- [ ] Add support for Remix
- [ ] Add support for pushing to a registry
Contribute
Contributions are welcome. Please fork the repo and make pull requests to the master branch.
Linting
Linting is done with ESLint
npm run lintTests
Tests are run with Node.js test runner
npm run testExamples
Example projects using different frameworks can be found under /examples and is an easy way of playing around with node-docker-tools in different contexts.
To execute a local npx script within the context of an example app just go to the project dir and run the script from there. Moving to the root project dir is important as the scripts often assume cwd contains config files like package.json.
cd examples/nextjs
npx ../../src/npx/generate.jsPublish a new version
To publish a new version to npm update the version in package.json and then run npm publish
