npm.io
0.0.1-alpha.217 • Published 4 years agoCLI

@incremental.design/box-base

Licence
MIT
Version
0.0.1-alpha.217
Deps
12
Size
419 kB
Vulns
0
Weekly
0

box-base

Run node in a docker container, using javascript, rather than the docker CLI.

Installation:

yarn add --dev @incremental.design/box-base or npm install @incremental.design/box-base

Usage:

There are THREE ways to use this package:

  1. Run the box-base script, with npx box-base. This will use docker to build an incrementaldesign/box-base image, and then run it. You have to install and start docker desktop before you run this script.

    • This script accepts the following flags:

      • my-flag-here: name of flag

      If you don't provide all of the aformentioned flags, the script will prompt you to provide them.

  2. import box-base into your own typescript project:

    import boxBase from '@incremental.design/box-base`
    
    
    const {
      dockerInstance,        // instance of the docker API
      destroy,               // a function that undoes everything that `boxBase` did
                             //  (with the exception of writing to bind mounts)
      items                  // an object that contains all of the images, containers,
                             //  volumes and docker networks that `boxBase` created, used, or started
      } = await boxBase({
      option1: "abcd" // explain the option here
    })
  3. import any of the utilities in the @incremental.design/box-base package into your own typescript project.


import {
  addToKeychain,
  buildFromDockerfile,
  checkDocker,
  createLocalVolume,
  deglobify,
  generatePasswords,
  getAnswersFromCLI,
  getFromDockerHub,
  isDockerReady,
  isLabelValid,
  makePasswordPrompt,
  prettyPrintJSON,
  print,
  printProgress,
  quickstartFactory,
  retreiveFromKeychain,
  startContainer,
  streamContainerOutput,
} from '@incremental.design/box-base`
How box-base works:

[ ] Explain how execution works. What is the entry point for your code? Which files correspond to which functionality? What is the lifecycle of your project? Are there any singletons, side effects or shared state among instances of your project? Take extra care to explain design decisions. After all, you wrote an ENTIRE codebase around your opinions. Make sure that your repository's contributors understand them.

Contribute to box-base:

See dev-boxes/README.md.