algorand / algorand/sandbox

Remove layers of abstraction on-top of docker-compose

Aberta
#102 4 comentários 2 reações 0 responsáveis Ver no GitHub
new-feature-request Team Lamprey
Linguagem predominante
Shell
Estrelas
241
Forks
160
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

## Problem

Right now the `sandbox` script is a layer of abstraction that exists on-top of docker-compose. If you look at the sandbox channel in discord, most of the issues people have are specific to the sandbox script and issues with docker itself is hard to debug due to it being all embedded within the `sandbox` script. Having this script offers an attractive ease-of-use, but when it doesn't work it can make things more complicated. Debugging a sandbox problem not only requires docker knowledge, but also `sandbox`-specific knowledge. In the end, the `sandbox` script is just another thing that requires maintenance and I'm not sure if it really adds much value.

## Solution

I think it will be beneficial if we remove the abstraction layer that `sandbox` provides and instead rely on `docker-compose` for the management and configuration of sandbox services. At a high level, this means there is no more `sandbox` script that needs to be maintained and problems will be easier to debug. It also makes the experience a little easier to configure for those that are already familiar with docker.

For reference, I've created [a fork of sandbox](https://github.com/joe-p/sandbox) that does exactly this. I've also added some functionality in this repo that I think could be beneficial

- Two files for configuration. `.env` and `docker-compose.yml`, both of which are native to the docker environment
- Easier file management with bind mounts (copyFrom and copyTo can be confusing)
- Runs with specific UID:GID, making sharing files inside and outside of the container even easier
- Seemless VSCode devcontainer compatibility (simply clone directly as .devcontainer)
- Shell with more functionality (add git-prompt.sh and mount ~/.gitconfig) for in container development
- Option to install PyTeal

Most of this accomplished with `docker-compose.yml` and `Dockerfile` changes and is configurable with the `docker-compose.yml` and `.env`

## Dependencies

Any work on this would require someone familiar with docker, docker-compose, and sandbox. Ideally I think some of the sandbox functionality could be implemented as in-container helper scripts.

## Urgency

Low. Sandbox is still usable and support is easy enough to get on the discord, but making the sandbox simpler will be beneficial in the long run.

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.