We found that working inside a docker container isn't usually turn-key.
You need to figure out a system to get UID/GIDs in sync between the container and the host (otherwise you mess up permissions of files in your repository. This isn't terribly hard, but is annoying boilerplate to keep writing.
Plus, docker-compose doesn't really offer command discovery. Looking at a docker compose file, I don't know how to run the project's build steps, or run their linter or tests. Having to look that up is, in my opinion, annoying.
In general, we try to provide sane defaults, so that users (and to some extent maintainers) don't need to understand Docker and how it works in order to start using it.
> Plus, docker-compose doesn't really offer command discovery. Looking at a docker compose file, I don't know how to run the project's build steps, or run their linter or tests. Having to look that up is, in my opinion, annoying.
Shouldn’t this be in the README at / of the project?
ENVy is an environment manager to make working on disparate projects easier. You don't need to worry about what a package is called on your Linux distribution, or figure out how to build for Mac from scratch.
Part of our goal was to make it easier to contribute to open source. We noticed that long contributing guides dissuades casual involvement - if you have to install a bunch of dependencies (that you won't necessarily know how or remember to get rid of), and spend half an hour getting set up, you're not very likely to fix a typo or make a 30 second fix for a personally annoying bug.
There's also some value for business projects - we've found times that you just need to make a "simple" change to another team's codebase, and it turns into a multi-day effort of setting up an environment.
Setup with ENVy is as simple as typing `envy up` for any project you want to work on. Running `envy nuke` removes all traces of that environment. With ENVy, you don't need to hunt down a lint command or how you run the tests. `envy -h` shows you all the commands you can run - or just jump into a shell with `envy shell`.
You can read more about ENVy on our site, but the short version is that we think it'll make it easier for contributors to help out in open-source projects.
If you're interested, you can check out some examples to get up and running:
Under the hood, it handles the intricacies of setting up and working within a Docker container - it sounds simple on the surface, but networking, file permissions, and setup can wind up being kind of complicated.
We definitely realize that a critical mass of users and projects is required to have this be a truly useful project, and we've started to open some pull requests in open-source projects to gauge maintainer interest.
We did find that project as well. It's unrelated though - ours is intended to run on your local machine whereas that one seems intended to run on a server somewhere.