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

docker-compose-run

v0.8.0

Published

Execute a Docker Compose 'run' command for desktop commands.

Downloads

27

Readme

docker-compose-run

This module executes Docker Compose 'run' commands using specific Docker Compose configuration files. The idea is to be able to capture the detail of a particular application and how it should be run, in simple, shareable files.

For an explanation of the thinking behind this module see the blog post Disposable Laptops With Docker Compose And NPM.

Example

An example would be to create a way to run Jekyll commands without having to install Jekyll on our desktop.

First create a docker-compose.yml file that describes how to run the Jekyll command, and how to make it accessible to the desktop:

version: "2"
services:
  jekyll:
    image: jekyll/jekyll
    ports:
    - "4000:4000"
    volumes:
    - ${PWD}:/srv/jekyll

Then create a shell script that uses this module; it could be called anything, but we'll call it dcr-jekyll.js:

#!/usr/bin/env node
var dcr = require('docker-compose-run');

dcr('jekyll', __dirname, 'jekyll'));

Now when we run this script with a Jekyll command, a Docker container will be created and launched, and our command will be passed in to it:

$ ./dcr-jekyll --help
jekyll 3.4.3 -- Jekyll is a blog-aware, static site generator in Ruby

Usage:

  jekyll <subcommand> [options]

Options:
        -s, --source [DIR]  Source directory (defaults to ./)
        -d, --destination [DIR]  Destination directory (defaults to ./_site)
            --safe         Safe mode (defaults to false)
        -p, --plugins PLUGINS_DIR1[,PLUGINS_DIR2[,...]]  Plugins directory (defaults to ./_plugins)
            --layouts DIR  Layouts directory (defaults to ./_layouts)
            --profile      Generate a Liquid rendering profile
        -h, --help         Show this message
        -v, --version      Print the name and version
        -t, --trace        Show the full backtrace when an error occurs

Subcommands:
  import
  build, b              Build your site
  clean                 Clean the site (removes site output and metadata file) without building.
  doctor, hyde          Search site and print specific deprecation warnings
  help                  Show the help message, optionally for a given subcommand.
  new                   Creates a new Jekyll site scaffold in PATH
  new-theme             Creates a new Jekyll theme scaffold
  serve, server, s      Serve your site locally
  docs, d               Start a local server for the Jekyll documentation

API

The module provides a single function that takes three parameters:

  • the name of the service to run, and;
  • the directory in which the docker-compose.yml file is located, and;
  • the name of the application to run.

The service name must match the key in the Docker Compose file. The application parameter is the name of the command to run within the Docker container.

Note that the application name can be omitted if the Docker image has been set up in such a way that it's not needed. This will be the case if the ENTRYPOINT has been set in the Dockerfile.

Command-line Parameters

Any additional parameters passed will be appended to the run command. For example, if this command was run:

$ ./dcr-jekyll help build

the values help and build would be passed to the Docker Compose run command.