A lightweight toolkit for creating and running technology-specific development containers using Docker.
Instead of installing multiple runtimes and SDKs directly on your machine, this project allows you to spin up isolated development environments for different stacks.
The goal is simple:
- keep the host system clean
- standardize development environments
- allow fast switching between tech stacks
Currently supported:
- Flutter (Android SDK included)
Planned:
- Node.js
- Golang
- Rust
docker/
Dockerfile.flutter
scripts/
development_container.sh
Each technology has its own Dockerfile:
Dockerfile.<technology>
Examples:
Dockerfile.flutter
Dockerfile.node
Dockerfile.golang
- Docker
- Git
- Linux or macOS
Clone the repository:
git clone https://github.com/lucaspiffer16/devcontainers.git
cd devcontainers
Load the helper functions:
source scripts/development_container.sh
Optional: automatically load them in your shell
echo "source /path/to/devcontainers/scripts/development_container.sh" >> ~/.zshrc
dcb <image_name> <technology>
Example:
dcb flutter_dev flutter
This will build an image using:
docker/Dockerfile.flutter
Inside your project directory:
dcr <container_name> [image_name]
Example:
dcr my_flutter_project flutter_dev
This will:
- mount the current directory into
/workspace - enable SSH agent forwarding
- expose SSH on port
2222 - allow USB access when needed
You can connect via SSH:
ssh flutter@localhost -p 2222
Default password:
root
- Create a new Dockerfile:
docker/Dockerfile.<technology>
Example:
docker/Dockerfile.node
docker/Dockerfile.golang
- Build the image:
dcb node_dev node
- Run a container:
dcr my_node_project node_dev
Containers run with --privileged to allow advanced development workflows (e.g., USB debugging for Android devices).
This setup is intended for local development only.
MIT