gulp-docker
gulp-docker copied to clipboard
GulpDocker
Gulp tasks for managing Docker images and containers.
Gulpfile
Within your Gulpfile
, initialize GulpDocker
with an instance of gulp and container options:
var gulp = require("gulp");
var GulpDocker = require("gulp-docker");
new GulpDocker(gulp, {
sidekick: {
build: "bin/build"
run: "bin/sidekick",
env: { ENV: "production" },
git: "[email protected]:winton/sidekick.git#release",
repo: "quay.io/winton/sidekick"
}
});
Container Options
Each key of the object is the container name.
Each value of the object is another object with the following possible keys:
-
build
- The command to run within the Docker container after building the image, before pushing (optional). -
dockerfile
- The directory to discover the Dockerfile (optional). -
env
- Object containing environmental variables (optional). -
git
- A git repository URL string (optional). -
name
- The name of the container (required). -
ports
- An array of port strings in "[host-port]:[container-port]" format (optional). -
repo
- The Docker repository to push to on build (optional). -
run
- The command to run within the Docker container (optional). -
tags
- An array of tags to use when pushing the image (required). -
volumes
- An array of volume strings in "[host-dir]:[container-dir]:[rw|ro]" format (optional).
Tasks
-
docker:image
- Build and optionally push one or more Docker images. -
docker:restart
- Restart one or more Docker containers. -
docker:run
- Run one or more Docker containers. -
docker:stop
- Stop one or more Docker containers.
What happens on build?
- Ask user which containers to build and (optionally) push.
- Clone a pristine copy of the app.
- Run
docker build
within app directory (Dockerfile
should be present). - Push the Docker image if specified.
What happens on run?
- Build happens if image is not found (see above).
- Generate run arguments from container options.
- Call
docker run
with arguments.
Dev setup
npm install
Docs
node_modules/.bin/codo lib
open doc/index.html