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-services-deployer

v1.4.0

Published

Simply Tool for deploying your services to Docker

Downloads

9

Readme

docker-services-deployer

A simple tool for deploying your services to Docker.

Usage

$ npm install -g docker-services-deployer
$ docker-services-deployer <config-file>

Note that <config-file> can be a local file on disk or a remote url, e.g. a file on S3, an api endpoint, or whatever.

Config file

There are two parts to the config file, your 'docker' options, and the definition of your services that you want to deploy to docker.

{
  docker: {
  },
  services: [{
    "name": "service1",
    "registry": "mydockerregistry.somewhere.com/myorg/service1",
    "tag": "latest"
    "port": 1234,
    "links": ["service2:service2"],
    "cmd": [
      "node",
      "service.js"
      ],
    "env": [
      "FOO=bar",
      "FOO2=bar2"
    ]
  }]
}

The docker config object gets passed on directly to dockerode, see there for details.

Note that link and port are optional above.

Also note that one additional environment variable is set: DOCKER_HOST_IP, and is set to the hosts eth0 ip address (this is an alternative way of enabling services to talk to each other).

What it does / how it works

docker-services-deployer connects to docker, and then does the following to make sure docker is running the specified services at the correct version (tag):

  • first it checks your service image is up to date by pulling the image from the remote docker registry
  • if the image is already up to date, it checks you have a container for that service based off that image and that the container is running
  • if pulled image is different, it will stop and remove the existing container for this image (if it exists), and then creates a new container based of the new pulled image and runs it
  • the name, port, cmd and env from your service definition are all used when creating a container

License

MIT

Thanks to nearForm for sponsoring this.