1.0.2 • Published 3 years ago

sw-env v1.0.2

Weekly downloads
2
License
MIT
Repository
github
Last release
3 years ago

sw-env

NPM

Build Status Coverage Status node-current

Module that loads data from Docker Secrets into process.env with zero-dependency

Installation

NPM

npm install sw-env

Options

{
    dir: '/run/secrets',  // The location of the mount point within the container
    encode: 'utf8',       // ReadFileSync encoding
    override: false       // Override existing environment
}

Usage

Create Docker secrets using the command line.

echo "your-password" | docker secret create DB_PASSWORD -
echo "your-username" | docker secret create DB_USERNAME -

Or using a text file that contains the value of the secret.

docker secret create DB_USERNAME /path/to/username.txt
docker secret create DB_PASSWORD /path/to/password.txt

Or in your docker-compose.yml

version: "3.8"

services:

  app:
    image: node:latest
    secrets:
      - DB_USERNAME
      - DB_PASSWORD
    deploy:
      mode: replicated
      replicas: 1

secrets:
  DB_USERNAME:
    name: DB_USERNAME
    file: /path/to/username.txt
  DB_PASSWORD:
    name: DB_PASSWORD
    file: /path/to/pwd.txt

Reading and using Docker secrets in Node.js:

import swenv from 'sw-env';
 
// ... As early as possible in your App
const options = {}
swenv(options)

console.log(process.env.DB_USERNAME) // your-username
console.log(process.env.DB_PASSWORD) // your-password


// or ...


const secrets = swenv()
console.log(secrets.getSecrets())  // Object contain all container secrets

License

MIT

Use and abuse at your own risk.