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

@saws/container

v1.0.6

Published

<div align='center'>

Downloads

16

Readme

Container

Services for running docker containers in AWS ECS.

⚠️ This is one of the lesser used services in SAWS and thus may not be complete. ⚠️

Table of Contents

Installation

From the command line run:

npm install @saws/container

Then add the included service (ContainerService) to your saws.js file.

Development

In development, ContainerService will look for a Dockerfile in your service's directory, build it, and then run it in docker locally.

Anytime any files change in your service's directory it will automatically stop your container, rebuild the Dockerfile and then run it again.

Deployment

When you deploy a ContainerService, a number of resources will be stood up and configured for you:

  • ECR repository for pushing your docker image to.
  • ECS Cluster
  • ECS Service with EC2 launch type (this allows you to run your container in free tier)
  • Task Definition pointing to your image in ECR
  • Security Group to allow inbound TCP traffic on the configured port
  • EC2 instance added to your ECS cluster
  • An IAM Role for the EC2 instance to have permissiont to talk to Cloudwatch logs and the ECS cluster
  • An IAM Instance Profile

In a future release I'd like to have a configuration that allows you to choose Fargate over EC2 as the launch type. But Fargate has no free tier allowance which is why it's been done this way for now.

Services

@saws/container only includes one service: ContainerService

ContainerService

You can require the ContainerService and use it in your saws.js file like so:

const { ContainerService } = require('@saws/container/container-service')

const container = new ContainerService({
  name: 'my-container',
})

module.exports = container

The ContainerService constructor accepts the following options:

name: string

The name of your service. This should be unique across all of your services.

dependencies: ServiceDefinition[]

An array of all of the other services this service depends on. This will ensure that permissions, environment variables, and execution order are all set up.

port?: number

The port to expose on your container. If this port is being used locally already, it will automatically select a different port.

rootDir?: string

Changes the directory that the service looks in for it's code. By default it will be whatever name is.

healthCheckUrl?: string;

The health check URL for ECS to hit to determine the health of your container.

When used as a dependency

When a ContainerService is used as a dependency to other services, it will automatically attach (where applicable) the following environment variables into the dependent services:

  • SERVICE_NAME_URL: string - The url to send requests to the container

Libraries

@saws/container does not include any libraries.