{"id":13416573,"url":"https://github.com/EnvCLI/EnvCLI","last_synced_at":"2025-03-15T00:31:09.602Z","repository":{"id":57535842,"uuid":"116320181","full_name":"EnvCLI/EnvCLI","owner":"EnvCLI","description":"Don't install Node, Go, ... locally - use containers you define within your project. If you have a new machine / other contributors you just have to install docker and envcli to get started.","archived":false,"fork":false,"pushed_at":"2023-12-19T21:09:34.000Z","size":327,"stargazers_count":108,"open_issues_count":4,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-07-31T21:57:12.742Z","etag":null,"topics":["cli","command-line","developer-tools","docker","golang","yaml"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EnvCLI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-01-05T00:09:32.000Z","updated_at":"2024-05-12T17:58:57.000Z","dependencies_parsed_at":"2024-01-07T10:50:51.622Z","dependency_job_id":"ea9b9916-6542-4f77-9d5e-049776629f4e","html_url":"https://github.com/EnvCLI/EnvCLI","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnvCLI%2FEnvCLI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnvCLI%2FEnvCLI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnvCLI%2FEnvCLI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnvCLI%2FEnvCLI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EnvCLI","download_url":"https://codeload.github.com/EnvCLI/EnvCLI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243667720,"owners_count":20328032,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","command-line","developer-tools","docker","golang","yaml"],"created_at":"2024-07-30T21:01:01.188Z","updated_at":"2025-03-15T00:31:09.257Z","avatar_url":"https://github.com/EnvCLI.png","language":"Go","readme":"[![Go Report Card](https://goreportcard.com/badge/philippheuer/envcli)](http://goreportcard.com/report/philippheuer/envcli)\n[![Maintenance](https://img.shields.io/maintenance/yes/2023.svg)]()\n[![GitHub contributors](https://img.shields.io/github/contributors/PhilippHeuer/envcli.svg)]()\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/PhilippHeuer/envcli/blob/main/LICENSE.md)\n[![Version](https://img.shields.io/github/tag/envcli/envcli.svg)]()\n\n*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.\nIt currently supports the following providers: [Docker for Windows](https://docs.docker.com/docker-for-windows/install/), [Docker on Linux](https://docs.docker.com/engine/installation/) and [Docker Toolbox](https://docs.docker.com/toolbox/overview/).\n\n**What merits does this have?**\n\n- Reproducible builds (every developer and ci always use the specified version of Node, Go, ...)\n- Official Docker Image for CI\n- You don't have to build docker images with node \u0026 angular cli or golang \u0026 dep - just use the official containers directly\n- Quick on-boarding (just install Docker and EnvCLI and you can start coding without setting up any other dependencies or spending time on configurations)\n- Enforce identical development environments (every developer has the same version of the compilers/gradle/...)\n- Never install dependencies manually or deal with leftovers of old versions (containers are ethereal)\n- Tools (ex. Ruby -\u003e Changelog generator) can be defined in the `.envcli.yml` without installing Ruby or a specific version which might break other tools\n- Supports a system-scoped configuration to define tools you need like for example htop, grep, ct (coreos config transpiler), overcommit or other tools\n- 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\n\n---\n\n. **[Overview](#overview)** . **[Installation](#installation)** . **[Documentation](#documentation)** . **[Credits](#credits)** .\n\n---\n\n## Overview\n\nTo use *EnvCLI* you have to install docker and envcli. (See **[Installation](#installation)**)\n\nAfter that you can create the `.envcli.yml` configuration file for your project.\n\nExample (A single image can provide multiple commands):\n\n```yaml\nimages:\n- name: npm\n  description: Node.js is a JavaScript-based platform for server-side and networking applications.\n  provides:\n  - npm\n  - yarn\n  image: docker.io/node:10-alpine\n```\n\nWhen you run `envcli run npm init` *EnvCLI* will take the executed command and match it to the [Docker](https://www.docker.com/) Image `node:10-alpine` based on the provided commands.\n\nYou 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.\n\n#### What does EnvCLI do?\n\nThis project only provides the configuration file and the easy *envcli* commmand, therefore making it easier to use [Docker](https://www.docker.com/) when development your project. You can do the same without *EnvCLI*.\n\n**Plain Docker**:\n\n```bash\ndocker run --rm -it --workdir /go/src/project/ --volume \"C:\\SourceCodes\\golang\\envcli:/\ngo/src/project\" golang:latest /usr/bin/env sh -c \"go build -o envcli src/*\"\n```\n\n**With EnvCLI**:\n\n```bash\nenvcli run go build -o envcli src/*\n```\n\n**With EnvCLI \u0026 Aliases**:\n\nCan be used by running `envcli install-aliases` once.\n\n```bash\ngo build -o envcli src/*\n```\n\n## Installation\n\n#### **Docker for Windows**\n\n1. Install Docker for Windows from https://docs.docker.com/docker-for-windows/install/\n2. Install [EnvCLI](https://dl.bintray.com/envcli/golang/envcli/v0.7.0/EnvCLI-amd64.msi)\n\n#### **Docker for Linux**\n\n1. Install the default Docker version from your favorite package manager.\n2. Install [EnvCLI]\n\n*32bit*\n\n```bash\ncurl -L -o /usr/local/bin/envcli https://dl.bintray.com/envcli/golang/envcli/v0.7.0/linux_386\nchmod +x /usr/local/bin/envcli\n```\n\n*64bit*\n\n```bash\ncurl -L -o /usr/local/bin/envcli https://dl.bintray.com/envcli/golang/envcli/v0.7.0/linux_amd64\nchmod +x /usr/local/bin/envcli\n```\n\n#### **OSX**\n\n1. Install the default Docker version from your favorite package manager.\n2. Install [EnvCLI]\n\n*64bit*\n\n```bash\ncurl -L -o /usr/local/bin/envcli https://dl.bintray.com/envcli/golang/envcli/v0.7.0/darwin_amd64\nchmod +x /usr/local/bin/envcli\n```\n\n## Library\n\nYou can use `envcli` as library in other projects.\n\n```bash\ngo get -u github.com/EnvCLI/EnvCLI\n```\n\n## Roadmap\n\n- [Features](https://github.com/PhilippHeuer/EnvCLI/labels/feature)\n\n## Documentation\n\n- [Documentation](https://envcli.readthedocs.io/en/latest/)\n- [Examples](https://envcli.readthedocs.io/en/latest/examples/)\n- [Changelog](https://envcli.readthedocs.io/en/latest/changelog/overview/)\n\n## Credits\n\n- [Bintray - Software Distribution](https://bintray.com)\n- [Advanced Installer](https://www.advancedinstaller.com/) - Free License to build the Setup\n- [Jinzhu / YML Configuration File](https://github.com/jinzhu/configor)\n- [Sirupsen / Logging](https://github.com/sirupsen/logrus)\n- [Urfave / CLI](https://github.com/urfave/cli)\n- [mattn / go-isatty](https://github.com/mattn/go-isatty)\n- [Mattn / Support of colors in Windows CLI](https://github.com/mattn/go-colorable)\n- [Inconshreveable / Go Update](https://github.com/inconshreveable/go-update)\n- [Blang / Semver](https://github.com/blang/semver)\n","funding_links":[],"categories":["Development with Docker","Go","cli","Command Line and Tooling"],"sub_categories":["Development Environment","Observability"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEnvCLI%2FEnvCLI","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEnvCLI%2FEnvCLI","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEnvCLI%2FEnvCLI/lists"}