grunt-docker-images

0.2.0 • Public • Published

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.

Readme

Keywords

Package Sidebar

Install

npm i grunt-docker-images

Weekly Downloads

1

Version

0.2.0

License

MIT

Unpacked Size

11.7 kB

Total Files

6

Last publish

Collaborators

  • ephracis