{"_id":"@abeljimenez8am-nx-tools/nx-container","_rev":"3-a62ad990be4aa88795be7cdc0d309626","name":"@abeljimenez8am-nx-tools/nx-container","dist-tags":{"latest":"7.2.3"},"versions":{"7.2.1":{"name":"@abeljimenez8am-nx-tools/nx-container","version":"7.2.1","author":{"name":"gperdomor","email":"gperdomor@gmail.com"},"license":"MIT","_id":"@abeljimenez8am-nx-tools/nx-container@7.2.1","maintainers":[{"name":"abeljimenez8am","email":"abel.jimenez@8am.com"}],"homepage":"https://github.com/gperdomor/nx-tools#readme","bugs":{"url":"https://github.com/gperdomor/nx-tools/issues"},"dist":{"shasum":"505327e86f4f5e22ec33521136182860b52e5e95","tarball":"https://registry.npmjs.org/@abeljimenez8am-nx-tools/nx-container/-/nx-container-7.2.1.tgz","fileCount":62,"integrity":"sha512-PfCl8hgmBMiK/azVvr+xXXw90vcFRyMDInT4jN864flT1jsXjf49D8RjReWvTCAoSMQGhOFRgdFfwC4K6cxqkQ==","signatures":[{"sig":"MEUCIBev42Z0JcLKDs+ZOiOxqolLQArKmPYQJOvtmNA7lgacAiEAqfxPaxiGWZz6DoG62X4Z9SR3ORRl1C3MarcYjSkR+2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105730},"main":"./dist/index.js","type":"commonjs","_from":"file:abeljimenez8am-nx-tools-nx-container-7.2.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0 <21 || >=22.12.0 <23 || >=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@abeljimenez8am-nx-tools/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"abeljimenez8am","email":"abel.jimenez@8am.com"},"_resolved":"/private/var/folders/kq/zjs_hqgs0mn0dlmhx8hm8t140000gp/T/d9482ebc71874f4626ba9cdc3c3acb10/abeljimenez8am-nx-tools-nx-container-7.2.1.tgz","executors":"./executors.json","_integrity":"sha512-PfCl8hgmBMiK/azVvr+xXXw90vcFRyMDInT4jN864flT1jsXjf49D8RjReWvTCAoSMQGhOFRgdFfwC4K6cxqkQ==","generators":"./generators.json","repository":{"url":"git+https://github.com/gperdomor/nx-tools.git","type":"git","directory":"packages/nx-container"},"_npmVersion":"10.9.4","description":"<p align=\"center\">   <a href=\"https://www.npmjs.com/package/@nx-tools/nx-container\">     <img alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/@nx-tools/nx-container\"/>   </a>   <a href=\"https://www.npmjs.com/package/@nx-tools/nx-container\">     <img a","directories":{},"_nodeVersion":"22.21.1","dependencies":{"tmp":"^0.2.5","semver":"^7.7.3","csv-parse":"^5.6.0","handlebars":"^4.7.8","@abeljimenez8am-nx-tools/core":"7.2.1","@abeljimenez8am-nx-tools/container-metadata":"7.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nx":"22.1.0","@nx/js":"22.1.0","@nx/devkit":"22.1.0","@abeljimenez8am-nx-tools/ci-context":"7.2.1"},"peerDependencies":{"nx":">=18.0.0 <23.0.0","tslib":"^2.6.0","@nx/js":">=18.0.0 <23.0.0","dotenv":">=16.0.0","@nx/devkit":">=18.0.0 <23.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-container_7.2.1_1768439815320_0.31437121501173526","host":"s3://npm-registry-packages-npm-production"}},"7.2.2":{"name":"@abeljimenez8am-nx-tools/nx-container","version":"7.2.2","author":{"name":"gperdomor","email":"gperdomor@gmail.com"},"license":"MIT","_id":"@abeljimenez8am-nx-tools/nx-container@7.2.2","maintainers":[{"name":"abeljimenez8am","email":"abel.jimenez@8am.com"}],"homepage":"https://github.com/gperdomor/nx-tools#readme","bugs":{"url":"https://github.com/gperdomor/nx-tools/issues"},"dist":{"shasum":"d6865806134369cb9018c3a6b69e474d71ce5627","tarball":"https://registry.npmjs.org/@abeljimenez8am-nx-tools/nx-container/-/nx-container-7.2.2.tgz","fileCount":62,"integrity":"sha512-iwgIKu9iiDb1ufkHVtqIzJOrmEiu3ERrozokG0Jf9yuhPtwV4D+j6LhqzQk4U40YvI5R2iHSu7XJoY81M2PGgA==","signatures":[{"sig":"MEYCIQCuf6Nuwh0ESu96d9XX9LWCYimbFnmoCey1fA/Qd6Ve/gIhAPlH0BQuk/twVGp4LbtIfq0/5fVWrhi50e0Lnp3p4jEC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105985},"main":"./dist/index.js","type":"commonjs","_from":"file:abeljimenez8am-nx-tools-nx-container-7.2.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0 <21 || >=22.12.0 <23 || >=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@abeljimenez8am-nx-tools/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"abeljimenez8am","email":"abel.jimenez@8am.com"},"_resolved":"/private/var/folders/kq/zjs_hqgs0mn0dlmhx8hm8t140000gp/T/18a9b7bafbc716447f5a59cbd18cbb28/abeljimenez8am-nx-tools-nx-container-7.2.2.tgz","executors":"./executors.json","_integrity":"sha512-iwgIKu9iiDb1ufkHVtqIzJOrmEiu3ERrozokG0Jf9yuhPtwV4D+j6LhqzQk4U40YvI5R2iHSu7XJoY81M2PGgA==","generators":"./generators.json","repository":{"url":"git+https://github.com/gperdomor/nx-tools.git","type":"git","directory":"packages/nx-container"},"_npmVersion":"10.9.4","description":"<p align=\"center\">   <a href=\"https://www.npmjs.com/package/@nx-tools/nx-container\">     <img alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/@nx-tools/nx-container\"/>   </a>   <a href=\"https://www.npmjs.com/package/@nx-tools/nx-container\">     <img a","directories":{},"_nodeVersion":"22.21.1","dependencies":{"tmp":"^0.2.5","semver":"^7.7.3","csv-parse":"^5.6.0","handlebars":"^4.7.8","@abeljimenez8am-nx-tools/core":"7.2.2","@abeljimenez8am-nx-tools/container-metadata":"7.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nx":"22.1.0","@nx/js":"22.1.0","@nx/devkit":"22.1.0","@abeljimenez8am-nx-tools/ci-context":"7.2.2"},"peerDependencies":{"nx":">=18.0.0 <23.0.0","tslib":"^2.6.0","@nx/js":">=18.0.0 <23.0.0","dotenv":">=16.0.0","@nx/devkit":">=18.0.0 <23.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-container_7.2.2_1768440116751_0.15701545063797795","host":"s3://npm-registry-packages-npm-production"}},"7.2.3":{"name":"@abeljimenez8am-nx-tools/nx-container","version":"7.2.3","author":{"name":"gperdomor","email":"gperdomor@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/gperdomor/nx-tools.git","directory":"packages/nx-container"},"bugs":{"url":"https://github.com/gperdomor/nx-tools/issues"},"license":"MIT","publishConfig":{"access":"public"},"type":"commonjs","main":"./dist/index.js","types":"./dist/index.d.ts","generators":"./generators.json","executors":"./executors.json","dependencies":{"csv-parse":"^5.6.0","handlebars":"^4.7.8","semver":"^7.7.3","tmp":"^0.2.5","@abeljimenez8am-nx-tools/container-metadata":"7.2.3","@abeljimenez8am-nx-tools/core":"7.2.3"},"peerDependencies":{"@nx/devkit":">=18.0.0 <23.0.0","@nx/js":">=18.0.0 <23.0.0","nx":">=18.0.0 <23.0.0","dotenv":">=16.0.0","tslib":"^2.6.0"},"devDependencies":{"@nx/devkit":"22.1.0","@nx/js":"22.1.0","nx":"22.1.0","@abeljimenez8am-nx-tools/ci-context":"7.2.3"},"engines":{"node":">=20.19.0 <21 || >=22.12.0 <23 || >=24.0.0"},"exports":{"./package.json":"./package.json",".":{"@abeljimenez8am-nx-tools/source":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"_id":"@abeljimenez8am-nx-tools/nx-container@7.2.3","description":"<p align=\"center\">   <a href=\"https://www.npmjs.com/package/@nx-tools/nx-container\">     <img alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/@nx-tools/nx-container\"/>   </a>   <a href=\"https://www.npmjs.com/package/@nx-tools/nx-container\">     <img a","homepage":"https://github.com/gperdomor/nx-tools#readme","_integrity":"sha512-W4aHNk5GXeh2r6BmJvaFKuBzgz5ydWqnPdHuZq9Qn7S37v9xigEDYR552VkybQKzjsPE7A9VkRp0nSdRqYCZNw==","_resolved":"/private/var/folders/kq/zjs_hqgs0mn0dlmhx8hm8t140000gp/T/6cbe4e48455823fe95a3c2beb4da56f0/abeljimenez8am-nx-tools-nx-container-7.2.3.tgz","_from":"file:abeljimenez8am-nx-tools-nx-container-7.2.3.tgz","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-W4aHNk5GXeh2r6BmJvaFKuBzgz5ydWqnPdHuZq9Qn7S37v9xigEDYR552VkybQKzjsPE7A9VkRp0nSdRqYCZNw==","shasum":"294637e539a9323d2b9b46e21df50f5c7be46f39","tarball":"https://registry.npmjs.org/@abeljimenez8am-nx-tools/nx-container/-/nx-container-7.2.3.tgz","fileCount":62,"unpackedSize":105985,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD46gF4lzKMrKbnr6LDcuD4Mf084QFPHE4gUbPKwCkAggIhAJk8iO8CCdN0zP2oY0oEEsdMmVzhk2We/g+fNzC5G9dz"}]},"_npmUser":{"name":"abeljimenez8am","email":"abel.jimenez@8am.com"},"directories":{},"maintainers":[{"name":"abeljimenez8am","email":"abel.jimenez@8am.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nx-container_7.2.3_1768441095477_0.6040985872386955"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-15T01:16:55.210Z","modified":"2026-01-15T01:38:15.758Z","7.2.1":"2026-01-15T01:16:55.504Z","7.2.2":"2026-01-15T01:21:56.892Z","7.2.3":"2026-01-15T01:38:15.648Z"},"bugs":{"url":"https://github.com/gperdomor/nx-tools/issues"},"author":{"name":"gperdomor","email":"gperdomor@gmail.com"},"license":"MIT","homepage":"https://github.com/gperdomor/nx-tools#readme","repository":{"type":"git","url":"git+https://github.com/gperdomor/nx-tools.git","directory":"packages/nx-container"},"description":"<p align=\"center\">   <a href=\"https://www.npmjs.com/package/@nx-tools/nx-container\">     <img alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/@nx-tools/nx-container\"/>   </a>   <a href=\"https://www.npmjs.com/package/@nx-tools/nx-container\">     <img a","maintainers":[{"name":"abeljimenez8am","email":"abel.jimenez@8am.com"}],"readme":"<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@nx-tools/nx-container\">\n    <img alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/@nx-tools/nx-container\"/>\n  </a>\n  <a href=\"https://www.npmjs.com/package/@nx-tools/nx-container\">\n    <img alt=\"NPM Type Definitions\" src=\"https://img.shields.io/npm/types/@nx-tools/nx-container\"/>\n  </a>\n  <a href=\"https://bundlephobia.com/package/@nx-tools/nx-container\">\n    <img alt=\"Minizipped Size\" src=\"https://img.shields.io/bundlephobia/minzip/@nx-tools/nx-container\" />\n  </a>\n  <a href=\"https://github.com/gperdomor/nx-tools/blob/main/LICENSE\">\n    <img alt=\"GitHub License\" src=\"https://img.shields.io/github/license/gperdomor/nx-tools\"/>\n  </a>\n  <a href=\"https://www.npmjs.com/package/@nx-tools/nx-container\">\n    <img alt=\"NPM Downloads\" src=\"https://img.shields.io/npm/dm/@nx-tools/nx-container\"/>\n  </a>\n</p>\n\nThe `@nx-tools/nx-container` plugin streamlines container image workflows in Nx monorepos by providing a unified interface for multiple container build engines and automated image management capabilities.\n\n## Key Features\n\n- **Multi-Engine Support**: Build container images using your preferred container engine:\n  - [Docker Buildx](https://github.com/docker/buildx) with [Moby BuildKit](https://github.com/moby/buildkit) for advanced build features\n  - [Podman](https://docs.podman.io/en/latest/) for rootless and daemonless container builds\n- **Automated Image Management**: Intelligent tag generation and [OCI Image Format Specification](https://github.com/opencontainers/image-spec/blob/master/annotations.md) compliant labeling\n- **Project Scaffolding**: Code generators to quickly configure container builds for your applications\n\n## Getting Started\n\n### Installation\n\nTo add the `@nx-tools/nx-container` plugin to your Nx workspace, run the following command:\n\n```package-install\nnpx nx add @nx-tools/nx-container\n```\n\nThis command will:\n\n- Install the plugin package\n- Configure the plugin in your `nx.json` file\n- Set up default configurations for your workspace\n\n### Task Inference\n\nThe plugin automatically detects projects suitable for containerization and adds a `container` task to any project containing a `Dockerfile`. This intelligent inference eliminates the need for manual task configuration in most cases.\n\n### Viewing Inferred Tasks\n\nTo inspect the automatically inferred tasks for any project:\n\n- **Using Nx Console**: Open the [project details view](https://nx.dev/concepts/inferred-tasks) for comprehensive task visualization\n- **Using CLI**: Execute `nx show project <project-name>` to display project configuration and available tasks\n\n## Configuration\n\n### Plugin Configuration\n\nConfigure the `@nx-tools/nx-container` plugin in your workspace's `nx.json` file within the `plugins` array:\n\n```json title=\"nx.json\"\n{\n  \"plugins\": [\n    {\n      \"plugin\": \"@nx-tools/nx-container\",\n      \"options\": {\n        \"defaultEngine\": \"docker\",\n        \"defaultRegistry\": \"docker.io\"\n      }\n    }\n  ]\n}\n```\n\n### Alternative Engine Configuration\n\nYou can customize the default build engine and registry to match your infrastructure requirements:\n\n```json title=\"nx.json\"\n{\n  \"plugins\": [\n    {\n      \"plugin\": \"@nx-tools/nx-container\",\n      \"options\": {\n        \"defaultEngine\": \"podman\",\n        \"defaultRegistry\": \"ghcr.io\"\n      }\n    }\n  ]\n}\n```\n\n**Supported Engines:**\n\n- `docker` (default) - Standard Docker builds with BuildKit\n- `podman` - Rootless container builds\n\n**Common Registries:**\n\n- `docker.io` - Docker Hub (default)\n- `ghcr.io` - GitHub Container Registry\n- `gcr.io` - Google Container Registry\n- Custom registry URLs\n\n## Build your application\n\n```bash\nnx container appName\n```\n\nTo use a different engine, you need to update the `options.engine` property of your project target or use the INPUT_ENGINE environment variable. All possible values are `docker` (the default) and `podman`\n\n> [!IMPORTANT]\n> You can set docker or podman engine in your project.json targets to use in your dev machine, and use INPUT_ENGINE env variable to use docker in your CI/CD pipelines.\n\n## More Documentation\n\n- Advanced usage:\n\n  - [Multi-platform image](https://nx-tools.vercel.app/docs/nx-container/guides/advanced/multi-platform)\n  - [Push to multi-registries](https://nx-tools.vercel.app/docs/nx-container/guides/advanced/push-multiple-registries)\n  - [Cache](https://nx-tools.vercel.app/docs/nx-container/guides/advanced/cache)\n  - [Local registry](https://nx-tools.vercel.app/docs/nx-container/guides/advanced/local-registry)\n  - [Export image to Docker](https://nx-tools.vercel.app/docs/nx-container/guides/advanced/export-docker)\n  - [Handle tags and labels](https://nx-tools.vercel.app/docs/nx-container/guides/advanced/tags-labels)\n\n- Usage with CI\n\n  - [GitLab CI](https://nx-tools.vercel.app/docs/nx-container/guides/gitlab-ci)\n  - [GitHub Actions](https://nx-tools.vercel.app/docs/nx-container/guides/github-actions)\n\n- [Frequently Asked Questions](https://nx-tools.vercel.app/docs/nx-container/faq)\n\n## Package reference\n\nHere is a list of all the executors and generators available from this package:\n\n### Executors\n\n- build: Builds an image using instructions from the Dockerfile and a specified build context directory.\n\n### Generators\n\n- init: Initialize Container settings for your workspace.\n- configuation: Configure Container builds for your application.\n\n## Community\n\nJoin the growing Nx Tools community! We believe in building together and welcome contributors of all experience levels.\n\n### Get Involved\n\n- **Report Issues**: Found a bug or have a suggestion? [Open an issue](https://github.com/gperdomor/nx-tools/issues/new/choose) on GitHub\n- **Ask Questions**: Need help or clarification? Start a conversation in [GitHub Discussions](https://github.com/gperdomor/nx-tools/discussions)\n- **Contribute Code**: Pull requests are welcome! Check our [contribution guidelines](https://github.com/gperdomor/nx-tools/blob/main/CONTRIBUTING.md) to get started\n- **Share Your Work**: Built something with Nx Tools? Share it with the community in the [Showcase discussion](https://github.com/gperdomor/nx-tools/discussions/categories/show-and-tell)\n- **Spread the Word**: Star the [repository](https://github.com/gperdomor/nx-tools), share on social media, or write about your experience\n\n### Resources\n\n- [GitHub Repository](https://github.com/gperdomor/nx-tools) - Source code, issues, and project management\n- [GitHub Discussions](https://github.com/gperdomor/nx-tools/discussions) - Community conversations and support\n- [NPM Package](https://www.npmjs.com/package/@nx-tools/nx-container) - Latest releases and installation information\n- [Documentation](https://nx-tools.vercel.app) - Comprehensive guides and API reference\n- [Code of Conduct](https://github.com/gperdomor/nx-tools/blob/main/CODE_OF_CONDUCT.md) - Our community standards and expectations\n\nYour feedback and contributions help make Nx Tools better for everyone!\n\n## Sponsors\n\n<p align=\"center\">\n  <a href=\"https://cdn.jsdelivr.net/gh/gperdomor/static/sponsors.svg\">\n    <img src='https://cdn.jsdelivr.net/gh/gperdomor/static/sponsors.svg'/>\n  </a>\n</p>\n\n## License\n\n[MIT](https://github.com/gperdomor/nx-tools/blob/main/LICENSE) License © [Gustavo Perdomo](https://github.com/gperdomor)\n","readmeFilename":"README.md"}