npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

grunt-docker-images

v0.2.0

Published

Grunt plugin for managing container images with Docker.

Downloads

9

Readme

grunt-docker-images

Grunt plugin for managing container images with Docker.

Getting Started

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-docker-images --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-docker-images');

Docker task

Run this task with the grunt docker command.

Task targets, files and options may be specified according to the grunt Configuring tasks guide.

Global options

options.registry

Type: String. Default value docker.io.

The name of the registry to use. For example registry.example.com would build the image registry.example.com/PROJECT_NAME/IMAGE_NAME:VERSION.

options.project

Type: String. Default value is the environment variable USER.

The name of the project in the registry to use. For example acme would build the image docker.io/acme/IMAGE_NAME:VERSION.

options.folder

Type: String. Default value containers.

The folder where container sources are located. For example by setting the value to docker, the image my_app would build the container sourcces inside docker/my_app.

options.testFolder

Type: String. Default value test/containers.

The folder where container images for testing is located.

Image options

options.version

Type: String. Default value latest.

The tag to build. For example by setting the value to 1.0.0, the image docker.io/PROJECT/IMAGE:1.0.0 would be built.

options.path

Type: String.

The folder that should be built when building the container image. If not set the folder is assumed to be named the same as the image inside the folder specified by options.folder.

options.testPath

Type: String.

The folder where the test container is located. If not set the folder is assumed to be named the same as the image inside the folder specified by options.testFolder.

Build arguments

All options for the image are also sent as build arguments. For example, the version number can be used as such:

FROM alpine
ARG version
RUN apk add --no-cache mypackage=$version

Example

Each target should correspond to a playbook. The options under each target is turned into command line arguments. For example:

docker: {
  options: {
    folder: 'containers',
    registry: 'registry.example.com',
    project: 'my_project'
  },
  nginx: {
    version: 'latest',
    title: 'Nginx',
    vendor: 'Nginx, Inc.',
    license: 'BSD 2-clause'
  }
}

The images can then be built with:

$ grunt docker:nginx:build
...

Testing container images

Images can also be tested by runing:

$ grunt docker:nginx:test
...

Testing is done by placing a second container inside a test folder. By default this is test/containers. When the test container is built it will be injected with the argument image_name which can be used to base the test image on the origin image like so:

ARG image_name
FROM $image_name

RUN install_test_tools

CMD run_test_command

After the test image is built it will be run.