GithubHelp home page GithubHelp logo

envcli / docker-goss Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 29 KB

Easy docker health checks, /healthz endpoints, and container delays

License: MIT License

Dockerfile 23.66% Shell 76.34%
docker goss envcli

docker-goss's Introduction

Go Report Card Maintenance GitHub contributors License Version

EnvCLI is a simple wrapper that allows you to run commands within ethereal docker containers. You can configure commands to run in docker images within the envcli configuration file. It currently supports the following providers: Docker for Windows, Docker on Linux and Docker Toolbox.

What merits does this have?

  • Reproducible builds (every developer and ci always use the specified version of Node, Go, ...)
  • Official Docker Image for CI
  • You don't have to build docker images with node & angular cli or golang & dep - just use the official containers directly
  • Quick on-boarding (just install Docker and EnvCLI and you can start coding without setting up any other dependencies or spending time on configurations)
  • Enforce identical development environments (every developer has the same version of the compilers/gradle/...)
  • Never install dependencies manually or deal with leftovers of old versions (containers are ethereal)
  • Tools (ex. Ruby -> Changelog generator) can be defined in the .envcli.yml without installing Ruby or a specific version which might break other tools
  • Supports a system-scoped configuration to define tools you need like for example htop, grep, ct (coreos config transpiler), overcommit or other tools
  • Suppports the creation of aliases, just use npm install x like you usually do and you won't even notice your commands are executed within docker containers by envcli

. Overview . Installation . Documentation . Credits .


Overview

To use EnvCLI you have to install docker and envcli. (See Installation)

After that you can create the .envcli.yml configuration file for your project.

Example (A single image can provide multiple commands):

images:
- name: npm
  description: Node.js is a JavaScript-based platform for server-side and networking applications.
  provides:
  - npm
  - yarn
  image: docker.io/node:10-alpine

When you run envcli run npm init EnvCLI will take the executed command and match it to the Docker Image node:10-alpine based on the provided commands.

You can also use envcli install-aliases --scope project to install the project defined aliases and use npm init directly - envcli will create a script in your path that will redirect your command to envcli and cause it to be executed within a container.

What does EnvCLI do?

This project only provides the configuration file and the easy envcli commmand, therefore making it easier to use Docker when development your project. You can do the same without EnvCLI.

Plain Docker:

docker run --rm -it --workdir /go/src/project/ --volume "C:\SourceCodes\golang\envcli:/
go/src/project" golang:latest /usr/bin/env sh -c "go build -o envcli src/*"

With EnvCLI:

envcli run go build -o envcli src/*

With EnvCLI & Aliases:

Can be used by running envcli install-aliases once.

go build -o envcli src/*

Installation

Docker for Windows

  1. Install Docker for Windows from https://docs.docker.com/docker-for-windows/install/
  2. Install EnvCLI

Docker for Linux

  1. Install the default Docker version from your favorite package manager.
  2. Install [EnvCLI]

32bit

curl -L -o /usr/local/bin/envcli https://dl.bintray.com/envcli/golang/envcli/v0.7.0/linux_386
chmod +x /usr/local/bin/envcli

64bit

curl -L -o /usr/local/bin/envcli https://dl.bintray.com/envcli/golang/envcli/v0.7.0/linux_amd64
chmod +x /usr/local/bin/envcli

OSX

  1. Install the default Docker version from your favorite package manager.
  2. Install [EnvCLI]

64bit

curl -L -o /usr/local/bin/envcli https://dl.bintray.com/envcli/golang/envcli/v0.7.0/darwin_amd64
chmod +x /usr/local/bin/envcli

Library

You can use envcli as library in other projects.

go get -u github.com/EnvCLI/EnvCLI

Roadmap

Documentation

Credits

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.